LCOV - code coverage report
Current view: top level - src/57_iovars - m_outvar_o_z.F90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 97.9 % 1111 1088
Test Date: 2026-11-06 01:31:13 Functions: 100.0 % 2 2
Branches: 88.5 % 1604 1419

             Branch data     Line data    Source code
       1                 :             : !!****m* ABINIT/m_outvar_o_z
       2                 :             : !! NAME
       3                 :             : !!  m_outvar_o_z
       4                 :             : !!
       5                 :             : !! FUNCTION
       6                 :             : !!
       7                 :             : !!
       8                 :             : !! COPYRIGHT
       9                 :             : !!  Copyright (C) 1998-2026 ABINIT group (DCA, XG, GMR, MM)
      10                 :             : !!  This file is distributed under the terms of the
      11                 :             : !!  GNU General Public License, see ~abinit/COPYING
      12                 :             : !!  or http://www.gnu.org/copyleft/gpl.txt .
      13                 :             : !!
      14                 :             : !! SOURCE
      15                 :             : 
      16                 :             : #if defined HAVE_CONFIG_H
      17                 :             : #include "config.h"
      18                 :             : #endif
      19                 :             : 
      20                 :             : #include "abi_common.h"
      21                 :             : 
      22                 :             : module m_outvar_o_z
      23                 :             : 
      24                 :             :  use defs_basis
      25                 :             : 
      26                 :             :  use m_errors
      27                 :             :  use m_results_out
      28                 :             :  use m_abicore
      29                 :             :  use m_xmpi
      30                 :             :  use m_dtset
      31                 :             : 
      32                 :             :  use m_geometry,     only : mkrdim, xred2xcart
      33                 :             :  use m_parser,       only : prttagm, prttagm_images, ab_dimensions
      34                 :             : 
      35                 :             :  implicit none
      36                 :             : 
      37                 :             :  private
      38                 :             : !!***
      39                 :             : 
      40                 :             :  public :: outvar_o_z
      41                 :             : !!***
      42                 :             : 
      43                 :             : contains
      44                 :             : !!***
      45                 :             : 
      46                 :             : !!****f* ABINIT/outvar_o_z
      47                 :             : !! NAME
      48                 :             : !! outvar_o_z
      49                 :             : !!
      50                 :             : !! FUNCTION
      51                 :             : !! Echo variables between acell and gw_ ... (by alphabetic order) for the ABINIT code.
      52                 :             : !!
      53                 :             : !! INPUTS
      54                 :             : !!  choice= 1 if echo of preprocessed variables, 2 if echo after call driver
      55                 :             : !!  dtsets(0:ndtset_alloc)=<type datafiles_type>contains all input variables
      56                 :             : !!  iout=unit number for echoed output
      57                 :             : !!  jdtset_(0:ndtset_alloc)=actual index of the dataset (equal to dtsets(:)%jdtset)
      58                 :             : !!  marr=maximum number of numbers in an array (might need to be increased ... !)
      59                 :             : !!  multivals= <type ab_dimensions>  either 0 or 1 , depending whether the
      60                 :             : !!     dimension has different values for different datasets
      61                 :             : !!  mxvals= <type ab_dimensions>
      62                 :             : !!     maximum size of some arrays along all datasets, including
      63                 :             : !!         lpawu      =maximal value of input lpawu for all the datasets
      64                 :             : !!         gw_nqlwl   =maximal value of input gw_nqlwl for all the datasets
      65                 :             : !!         mband      =maximum number of bands
      66                 :             : !!         natom      =maximal value of input natom for all the datasets
      67                 :             : !!         natpawu    =maximal value of number of atoms on which +U is applied for all the datasets
      68                 :             : !!         natsph     =maximal value of input natsph for all the datasets
      69                 :             : !!         natvshift  =maximal value of input natvshift for all the datasets
      70                 :             : !!         nconeq     =maximal value of input nconeq for all the datasets
      71                 :             : !!         nimage     =maximal value of input nimage for all the datasets
      72                 :             : !!         nkptgw     =maximal value of input nkptgw for all the datasets
      73                 :             : !!         nkpt       =maximal value of input nkpt for all the datasets
      74                 :             : !!         nnos       =maximal value of input nnos for all the datasets
      75                 :             : !!         nqptdm     =maximal value of input nqptdm for all the datasets
      76                 :             : !!         nspinor    =maximal value of input nspinor for all the datasets
      77                 :             : !!         nsppol     =maximal value of input nsppol for all the datasets
      78                 :             : !!         nsym       =maximum number of symmetries
      79                 :             : !!         ntypat     =maximum number of type of atoms
      80                 :             : !!         nzchempot  =maximal value of input nzchempot for all the datasets
      81                 :             : !!  ncid= NetCDF handler
      82                 :             : !!  ndtset=number of datasets
      83                 :             : !!  ndtset_alloc=number of datasets, corrected for allocation of at least
      84                 :             : !!      one data set. Use for most dimensioned arrays.
      85                 :             : !!  npsp=number of pseudopotentials
      86                 :             : !!  prtvol_glob= if 0, minimal output volume, if 1, no restriction.
      87                 :             : !!  results_out(0:ndtset_alloc)=<type results_out_type>contains the results
      88                 :             : !!   needed for outvars, including evolving variables
      89                 :             : !!  timopt=input variable to modulate the timing
      90                 :             : !!
      91                 :             : !! OUTPUT
      92                 :             : !!
      93                 :             : !! NOTES
      94                 :             : !! Note that this routine is called only by the processor me==0 .
      95                 :             : !! In consequence, no use of message and wrtout routine.
      96                 :             : !! The lines of code needed to output the defaults are preserved
      97                 :             : !! (see last section of the routine, but are presently disabled)
      98                 :             : !!
      99                 :             : !!  Note that acell, occ, rprim, xred and vel might have been modified by the
     100                 :             : !!  computation, so that their values if choice=1 or choice=2 will differ.
     101                 :             : !!
     102                 :             : !! SOURCE
     103                 :             : 
     104                 :        4584 :  subroutine outvar_o_z(choice,dtsets,iout,&
     105                 :        4584 : & jdtset_,marr,multivals,mxvals,ncid,ndtset,ndtset_alloc,npsp,prtvol_glob,&
     106                 :        4584 : & results_out,strimg,timopt)
     107                 :             : 
     108                 :             : !Arguments ------------------------------------
     109                 :             : !scalars
     110                 :             :  integer,intent(in) :: choice,iout,marr,ndtset
     111                 :             :  integer,intent(in) :: ndtset_alloc,prtvol_glob,ncid,npsp,timopt
     112                 :             : !arrays
     113                 :             :  integer,intent(in) :: jdtset_(0:ndtset_alloc)
     114                 :             :  type(ab_dimensions),intent(in) :: multivals,mxvals
     115                 :             :  type(dataset_type),intent(in) :: dtsets(0:ndtset_alloc)
     116                 :             :  type(results_out_type),intent(in) :: results_out(0:ndtset_alloc)
     117                 :             :  character(len=8),intent(in) :: strimg(mxvals%nimage)
     118                 :             : 
     119                 :             : !Local variables-------------------------------
     120                 :             : !scalars
     121                 :             :  integer,parameter :: nkpt_max=50
     122                 :             :  integer :: iat,icount,idtset,ii,iimage,ndtset_alloc_tmp
     123                 :             :  integer :: narr
     124                 :             :  integer :: multi_kptopt
     125                 :             :  integer :: natom
     126                 :             :  integer :: nimage,nnos,nsym
     127                 :             :  integer :: ntypalch,ntypat,size1,size2,test_write,tnkpt,timopt_default,tmpimg0
     128                 :             :  logical :: compute_static_images
     129                 :             :  logical :: nontrivial_spinaxis
     130                 :             :  character(len=1) :: firstchar_cuda,firstchar_ylm
     131                 :             : !arrays
     132                 :        4584 :  integer,allocatable :: narrm(:)
     133                 :        4584 :  integer,allocatable :: nimagem(:),prtimg(:,:)
     134                 :        4584 :  integer,allocatable :: intarr(:,:)
     135                 :             :  real(dp) :: rprimd(3,3)
     136                 :        4584 :  real(dp),allocatable :: dprarr(:,:),dprarr_images(:,:,:)
     137                 :        4584 :  real(dp),allocatable :: xangst(:,:),xcart(:,:),xred(:,:)
     138                 :        4584 :  real(dp),allocatable :: xangst_(:,:,:,:),xcart_(:,:,:,:)
     139                 :             : ! *************************************************************************
     140                 :             : 
     141                 :             : !###########################################################
     142                 :             : !### 01. Initial allocations and initialisations.
     143                 :             : 
     144   [ -  +  +  -  :       18336 :  ABI_MALLOC(dprarr,(marr,0:ndtset_alloc))
          -  +  +  -  +  
          -  +  -  -  +  
                   -  + ]
     145   [ -  +  +  -  :       22920 :  ABI_MALLOC(dprarr_images,(marr,mxvals%nimage,0:ndtset_alloc))
          -  +  +  -  -  
          +  +  -  +  -  
          +  -  -  +  -  
                      + ]
     146   [ -  +  +  -  :       18336 :  ABI_MALLOC(intarr,(marr,0:ndtset_alloc))
          -  +  +  -  +  
          -  +  -  -  +  
                   -  + ]
     147   [ -  +  +  -  :       13752 :  ABI_MALLOC(narrm,(0:ndtset_alloc))
          +  -  +  -  -  
                +  -  + ]
     148   [ -  +  +  -  :        9168 :  ABI_MALLOC(nimagem,(0:ndtset_alloc))
             -  +  -  + ]
     149   [ -  +  +  -  :       18336 :  ABI_MALLOC(prtimg,(mxvals%nimage,0:ndtset_alloc))
          -  +  +  -  +  
          -  +  -  -  +  
                   +  - ]
     150                 :             : 
     151         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
     152                 :       30298 :    nimagem(idtset)=dtsets(idtset)%nimage
     153                 :             :  end do
     154                 :             : 
     155                 :             :  ! wfoptalg and ortalg may be changed when CUDA (ABI_GPU_LEGACY, ABI_GPU_KOKKOS) is used
     156                 :        4584 :  firstchar_cuda=' '
     157   [ +  +  -  + ]:       25714 :  if (maxval(dtsets(1:ndtset_alloc)%gpu_option)==ABI_GPU_LEGACY) firstchar_cuda='-'
     158                 :             :  ! useylm is flagged only if it has been set to 1 because of GPU use
     159                 :        4584 :  firstchar_ylm=' '
     160   [ +  +  +  -  :       25714 :  if (any(dtsets(1:ndtset_alloc)%useylm_gpu_forced/=0)) firstchar_ylm='-'
                   -  + ]
     161                 :             : 
     162                 :        4584 :  natom=dtsets(1)%natom
     163                 :        4584 :  nimage=dtsets(1)%nimage
     164                 :        4584 :  nnos=dtsets(1)%nnos
     165                 :        4584 :  nsym=-1;nsym=dtsets(1)%nsym
     166                 :        4584 :  ntypalch=dtsets(1)%ntypalch
     167                 :        4584 :  ntypat=dtsets(1)%ntypat
     168                 :             : 
     169                 :             : !###########################################################
     170                 :             : !### 02. Specific treatment for occopt, xangst, xcart, xred
     171                 :             : 
     172                 :             : !Must compute xangst and xcart
     173   [ -  +  +  -  :       22920 :  ABI_MALLOC(xangst_,(3,mxvals%natom,mxvals%nimage,0:ndtset_alloc))
          -  +  +  -  -  
          +  +  -  +  -  
          +  -  -  +  -  
                      + ]
     174   [ -  +  +  -  :       18336 :  ABI_MALLOC(xcart_,(3,mxvals%natom,mxvals%nimage,0:ndtset_alloc))
          -  +  +  -  -  
          +  +  -  -  +  
                   +  - ]
     175   [ +  +  +  +  :     1267200 :  xangst_(:,:,:,:)=0.0_dp ; xcart_(:,:,:,:)=0.0_dp
          +  +  +  +  +  
          +  +  +  +  +  
                   +  + ]
     176                 :             : 
     177         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc
     178                 :       21130 :    natom=dtsets(idtset)%natom
     179   [ -  +  +  -  :       63390 :    ABI_MALLOC(xred,(3,natom))
          +  -  +  -  -  
                +  -  + ]
     180   [ -  +  +  -  :       42260 :    ABI_MALLOC(xangst,(3,natom))
             -  +  -  + ]
     181   [ -  +  +  -  :       42260 :    ABI_MALLOC(xcart,(3,natom))
             -  +  -  + ]
     182         [ +  + ]:       43012 :    do iimage=1,dtsets(idtset)%nimage
     183   [ +  +  +  + ]:      396474 :      xred(:,1:natom)=results_out(idtset)%xred(:,1:natom,iimage)
     184   [ -  +  -  -  :       21882 :      call mkrdim(results_out(idtset)%acell(:,iimage),results_out(idtset)%rprim(:,:,iimage),rprimd)
          -  -  -  +  -  
          -  -  -  -  -  
             -  +  -  + ]
     185                 :             : !    Compute xcart from xred and rprimd
     186                 :       21882 :      call xred2xcart(natom,rprimd,xcart,xred)
     187                 :             : !    Compute xangst from xcart
     188   [ +  +  +  + ]:      396474 :      xangst(:,:)=xcart(:,:)*Bohr_Ang
     189                 :             : !    Save the data
     190   [ +  +  +  + ]:      396474 :      xangst_(1:3,1:natom,iimage,idtset)=xangst(:,:)
     191   [ +  +  +  + ]:      417604 :      xcart_(1:3,1:natom,iimage,idtset)=xcart(:,:)
     192                 :             :    end do
     193         [ +  + ]:       21130 :    if(dtsets(idtset)%nimage/=mxvals%nimage)then
     194   [ +  +  +  +  :         776 :      xangst_(1:3,1:natom,dtsets(idtset)%nimage+1:mxvals%nimage,idtset)=zero
                   +  + ]
     195   [ +  +  +  +  :         776 :      xcart_(1:3,1:natom,dtsets(idtset)%nimage+1:mxvals%nimage,idtset)=zero
                   +  + ]
     196                 :             :    end if
     197         [ -  + ]:       21130 :    ABI_FREE(xred)
     198         [ -  + ]:       21130 :    ABI_FREE(xangst)
     199         [ -  + ]:       25714 :    ABI_FREE(xcart)
     200                 :             :  end do
     201                 :             : 
     202                 :             : !###########################################################
     203                 :             : !### 03. Print all the input variables (O)
     204                 :             : !##
     205                 :             : 
     206                 :             : !occ
     207                 :             : !The use of prttagm for occ if occopt>=2 is not possible because
     208                 :             : !the different k-point and spins must be separated on different lines ...
     209                 :             : !Also, if prtvol=-1 and NC file has been created, only print one dataset
     210                 :        4584 :  ndtset_alloc_tmp=ndtset_alloc
     211         [ +  + ]:        4584 :  if(ncid<0)ndtset_alloc_tmp=1
     212                 :        4584 :  call prtocc(dtsets,iout,jdtset_,mxvals,ndtset_alloc_tmp,nimagem,prtvol_glob,results_out,strimg)
     213                 :             : 
     214         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%occopt
     215                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'occopt','INT',0)
     216                 :             : 
     217         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%omegasimax
     218                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'omegasimax','ENE',0)
     219                 :             : 
     220         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%omegasrdmax
     221                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'omegasrdmax','ENE',0)
     222                 :             : 
     223         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%optcell
     224                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'optcell','INT',0)
     225                 :             : 
     226         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%optdcmagpawu
     227                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'optdcmagpawu','INT',0)
     228                 :             : 
     229         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%optdriver
     230                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'optdriver','INT',0)
     231                 :             : 
     232         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%optforces
     233                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'optforces','INT',0)
     234                 :             : 
     235         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%optnlxccc
     236                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'optnlxccc','INT',0)
     237                 :             : 
     238         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%optstress
     239                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'optstress','INT',0)
     240                 :             : 
     241         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%oracle_factor
     242                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'oracle_factor','DPR',0)
     243                 :             : 
     244         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%oracle_min_occ
     245                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'oracle_min_occ','DPR',0)
     246                 :             : 
     247         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%orbmag
     248                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'orbmag','INT',0)
     249                 :             : 
     250         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ortalg
     251                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ortalg','INT',0,firstchar=firstchar_cuda)
     252                 :             : 
     253                 :             : !###########################################################
     254                 :             : !### 03. Print all the input variables (P)
     255                 :             : !##
     256                 :             : 
     257         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%paral_atom
     258                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'paral_atom','INT',0, firstchar="-")
     259                 :             :  !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'paral_atom','INT',0)
     260                 :             : 
     261         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%paral_kgb
     262                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'paral_kgb','INT',0)
     263                 :             : 
     264         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%paral_rf
     265                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'paral_rf','INT',0)
     266                 :             : 
     267         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%paral_slice
     268                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'paral_slice','INT',0)
     269                 :             : 
     270         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%paw_add_core
     271                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'paw_add_core','INT',0)
     272                 :             : 
     273         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawcpxocc
     274                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawcpxocc','INT',0)
     275                 :             : 
     276         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawcross
     277                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawcross','INT',0)
     278                 :             : 
     279         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%pawecutdg
     280                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'pawecutdg','ENE',0)
     281                 :             : 
     282         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawfatbnd
     283                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawfatbnd','INT',0)
     284                 :             : 
     285         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawlcutd
     286                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawlcutd','INT',0)
     287                 :             : 
     288         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawlmix
     289                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawlmix','INT',0)
     290                 :             : 
     291         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawmixdg
     292                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawmixdg','INT',0)
     293                 :             : 
     294         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawnhatxc
     295                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawnhatxc','INT',0)
     296                 :             : 
     297         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawnphi
     298                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawnphi','INT',0)
     299                 :             : 
     300         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawntheta
     301                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawntheta','INT',0)
     302                 :             : 
     303         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawnzlm
     304                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawnzlm','INT',0)
     305                 :             : 
     306         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawoptmix
     307                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawoptmix','INT',0)
     308                 :             : 
     309         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawoptosc
     310                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawoptosc','INT',0)
     311                 :             : 
     312         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%pawovlp
     313                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawovlp','DPR',0)
     314                 :             : 
     315         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawprtdos
     316                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawprtdos','INT',0)
     317                 :             : 
     318         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawprtvol
     319                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawprtvol','INT',0)
     320                 :             : 
     321         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawprtwf
     322                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawprtwf','INT',0)
     323                 :             : 
     324         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawprt_b
     325                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawprt_b','INT',0)
     326                 :             : 
     327         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawprt_k
     328                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawprt_k','INT',0)
     329                 :             : 
     330         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawspnorb
     331                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawspnorb','INT',0)
     332                 :             : 
     333         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawstgylm
     334                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawstgylm','INT',0)
     335                 :             : 
     336         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawsushat
     337                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawsushat','INT',0)
     338                 :             : 
     339         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawujat
     340                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawujat','INT',0)
     341                 :             : 
     342         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%pawujrad
     343                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawujrad','LEN',0)
     344                 :             : 
     345         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%pawujv
     346                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawujv','ENE',0)
     347                 :             : 
     348         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawusecp
     349                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawusecp','INT',0)
     350                 :             : 
     351         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pawxcdev
     352                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pawxcdev','INT',0)
     353                 :             : 
     354         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ph_intmeth
     355                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ph_intmeth','INT',0)
     356                 :             : 
     357         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ph_ndivsm
     358                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ph_ndivsm','INT',0)
     359                 :             : 
     360         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
     361         [ +  + ]:      107440 :    intarr(1:3,idtset)=dtsets(idtset)%ph_ngqpt
     362                 :             :  end do
     363                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'ph_ngqpt','INT',0)
     364                 :             : 
     365         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ph_nqpath
     366                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ph_nqpath','INT',0)
     367                 :             : 
     368         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ph_nqshift
     369                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ph_nqshift','INT',0)
     370                 :             : 
     371         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%ph_smear
     372                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ph_smear','ENE',0)
     373                 :             : 
     374         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%ph_wstep
     375                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ph_wstep','ENE',0)
     376                 :             : 
     377                 :             : !pimass
     378                 :        4584 :  icount=0
     379         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     380         [ +  + ]:       62860 :    do ii = 1, ntypat
     381                 :       32562 :      dprarr(ii,idtset) = dtsets(idtset)%pimass(ii)
     382         [ -  + ]:       58276 :      if (dtsets(idtset)%pimass(ii)/=dtsets(idtset)%amu_orig(ii,1)) icount=1
     383                 :             :    end do ! end loop over ntypat
     384                 :             :  end do ! end loop over datasets
     385         [ -  + ]:        4584 :  if (icount/=0) then
     386                 :           0 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'pimass','DPR',0)
     387                 :             :  end if
     388                 :             : 
     389         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pimd_constraint
     390                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pimd_constraint','INT',0)
     391                 :             : 
     392         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pitransform
     393                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pitransform','INT',0)
     394                 :             : 
     395         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%plowan_bandi
     396                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'plowan_bandi','INT',0)
     397                 :             : 
     398         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%plowan_bandf
     399                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'plowan_bandf','INT',0)
     400                 :             : 
     401         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%plowan_compute
     402                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'plowan_compute','INT',0)
     403                 :             : 
     404         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%plowan_natom
     405                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'plowan_natom','INT',0)
     406                 :             : 
     407         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%plowan_nt
     408                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'plowan_nt','INT',0)
     409                 :             : 
     410         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%plowan_realspace
     411                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'plowan_realspace','INT',0)
     412                 :             : 
     413                 :             : 
     414                 :             : !plowan_it
     415                 :        4584 :  narr=100
     416         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     417                 :       25714 :    narrm(idtset)=3*dtsets(idtset)%plowan_nt
     418                 :             :    !if(idtset==0)narrm(idtset)=100
     419   [ -  +  -  - ]:       30298 :    if (narrm(idtset)>0.and.dtsets(idtset)%plowan_compute>=0) then
     420         [ #  # ]:           0 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%plowan_it(1:narrm(idtset))
     421                 :             :    end if
     422                 :             :  end do
     423                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'plowan_it','INT',1)
     424                 :             : 
     425                 :             : 
     426                 :             : !plowan_iatom
     427                 :        4584 :  narr=mxvals%natom
     428         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     429                 :       25714 :    narrm(idtset)=dtsets(idtset)%plowan_natom
     430                 :             :    !if(idtset==0)narrm(idtset)=mxvals%natom
     431   [ -  +  -  - ]:       30298 :    if (narrm(idtset)>0.and.dtsets(idtset)%plowan_compute>=0) then
     432         [ #  # ]:           0 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%plowan_iatom(1:narrm(idtset))
     433                 :             :    end if
     434                 :             :  end do
     435                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'plowan_iatom','INT',1)
     436                 :             : 
     437                 :             : !plowan_nbl
     438                 :             :  narr=mxvals%natom
     439         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     440                 :       25714 :    narrm(idtset)=dtsets(idtset)%plowan_natom
     441                 :             :    !if(idtset==0)narrm(idtset)=mxvals%natom
     442   [ -  +  -  - ]:       30298 :    if (narrm(idtset)>0.and.dtsets(idtset)%plowan_compute>=0) then
     443         [ #  # ]:           0 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%plowan_nbl(1:narrm(idtset))
     444                 :             :    end if
     445                 :             :  end do
     446                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'plowan_nbl','INT',1)
     447                 :             : 
     448                 :             : !plowan_lcalc
     449                 :        4584 :  narr=12*mxvals%natom
     450         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     451         [ -  + ]:       25714 :    narrm(idtset)=sum(dtsets(idtset)%plowan_nbl(1:dtsets(idtset)%plowan_natom))
     452                 :             :    !if(idtset==0)narrm(idtset)=12*mxvals%natom
     453   [ -  +  -  - ]:       30298 :    if (narrm(idtset)>0.and.dtsets(idtset)%plowan_compute>=0) then
     454         [ #  # ]:           0 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%plowan_lcalc(1:narrm(idtset))
     455                 :             :    end if
     456                 :             :  end do
     457                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'plowan_lcalc','INT',1)
     458                 :             : 
     459                 :             : !plowan_projcalc
     460                 :             :  narr=12*mxvals%natom
     461         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     462         [ -  + ]:       25714 :    narrm(idtset)=sum(dtsets(idtset)%plowan_nbl(1:dtsets(idtset)%plowan_natom))
     463                 :             :    !if(idtset==0)narrm(idtset)=12*mxvals%natom
     464   [ -  +  -  - ]:       30298 :    if (narrm(idtset)>0.and.dtsets(idtset)%plowan_compute>=0) then
     465         [ #  # ]:           0 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%plowan_projcalc(1:narrm(idtset))
     466                 :             :    end if
     467                 :             :  end do
     468                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'plowan_projcalc','INT',1)
     469                 :             : 
     470         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%polcen(1)
     471         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%polcen(2)
     472         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%polcen(3)
     473                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'polcen','DPR',0)
     474                 :             : 
     475         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%posdoppler
     476                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'posdoppler','INT',0)
     477                 :             : 
     478         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%positron
     479                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'positron','INT',0)
     480                 :             : 
     481         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%posnstep
     482                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'posnstep','INT',0)
     483                 :             : 
     484         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%posocc
     485                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'posocc','DPR',0)
     486                 :             : 
     487         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%postoldfe
     488                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'postoldfe','ENE',0)
     489                 :             : 
     490         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%postoldff
     491                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'postoldff','DPR',0)
     492                 :             : 
     493         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%ppmfrq
     494                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ppmfrq','ENE',0)
     495                 :             : 
     496         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ppmodel
     497                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ppmodel','INT',0)
     498                 :             : 
     499         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%precon_in_memory
     500                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'precon_in_memory','INT',0)
     501                 :             : 
     502         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%precon_ls_maxite
     503                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'precon_ls_maxite','INT',0)
     504                 :             : 
     505         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%precon_ls_rtol
     506                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'precon_ls_rtol','DPR',0)
     507                 :             : 
     508         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%precon_tsmear
     509                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'precon_tsmear','ENE',0)
     510                 :             : 
     511         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%precon_verbose
     512                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'precon_verbose','INT',0)
     513                 :             : 
     514         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prepalw
     515                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prepalw','INT',0)
     516                 :             : 
     517         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prepanl
     518                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prepanl','INT',0)
     519                 :             : 
     520         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prepgkk
     521                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prepgkk','INT',0)
     522                 :             : 
     523                 :             : !prtatlist
     524         [ +  + ]:        4584 :  if(multivals%natom==0)then
     525         [ +  + ]:       27552 :    do idtset=0,ndtset_alloc
     526         [ +  + ]:       93136 :      intarr(1:natom,idtset)=dtsets(idtset)%prtatlist(1:natom)
     527                 :             :    end do
     528   [ +  -  +  +  :       36508 :    intarr(1:mxvals%natom,0)=(/ (ii,ii=1,mxvals%natom) /)
                   +  + ]
     529                 :        4472 :    call prttagm(dprarr,intarr,iout,jdtset_,4,marr,natom,narrm,ncid,ndtset_alloc,'prtatlist','INT',0)
     530                 :             :  else
     531                 :             : !  This thing will disappear with new generalized prttagm
     532                 :             :  end if
     533                 :             : 
     534         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtbbb
     535                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtbbb','INT',0)
     536                 :             : 
     537         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtbltztrp
     538                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtbltztrp','INT',0)
     539                 :             : 
     540         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtchkprdm
     541                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtchkprdm','INT',0)
     542                 :             : 
     543         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtcif
     544                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtcif','INT',0)
     545                 :             : 
     546         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtcurrent
     547                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtcurrent','INT',0)
     548                 :             : 
     549         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtden
     550                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtden','INT',0)
     551                 :             : 
     552         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtdensph
     553                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtdensph','INT',0)
     554                 :             : 
     555         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtdos
     556                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtdos','INT',0)
     557                 :             : 
     558         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtdosm
     559                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtdosm','INT',0)
     560                 :             : 
     561         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtebands
     562                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtebands','INT',0)
     563                 :             : 
     564         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtefmas
     565                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtefmas','INT',0)
     566                 :             : 
     567         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prteig
     568                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prteig','INT',0)
     569                 :             : 
     570         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtelf
     571                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtelf','INT',0)
     572                 :             : 
     573         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prteliash
     574                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prteliash','INT',0)
     575                 :             : 
     576         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtevk
     577                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtevk','INT',0)
     578                 :             : 
     579         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtfull1wf
     580                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtfull1wf','INT',0)
     581                 :             : 
     582         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtfsurf
     583                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtfsurf','INT',0)
     584                 :             : 
     585         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtgden
     586                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtgden','INT',0)
     587                 :             : 
     588         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtgeo
     589                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtgeo','INT',0)
     590                 :             : 
     591         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtgkk
     592                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtgkk','INT',0)
     593                 :             : 
     594         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtgsr
     595                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtgsr','INT',0)
     596                 :             : 
     597         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtkden
     598                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtkden','INT',0)
     599                 :             : 
     600         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtlden
     601                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtlden','INT',0)
     602                 :             : 
     603         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prt1mag
     604                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prt1mag','INT',0)
     605                 :             : 
     606         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtnabla
     607                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtnabla','INT',0)
     608                 :             : 
     609         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtnest
     610                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtnest','INT',0)
     611                 :             : 
     612         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtocc
     613                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtocc','INT',0)
     614                 :             : 
     615         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtphbands
     616                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtphbands','INT',0)
     617                 :             : 
     618         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtphdos
     619                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtphdos','INT',0)
     620                 :             : 
     621         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtphsurf
     622                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtphsurf','INT',0)
     623                 :             : 
     624         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtposcar
     625                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtposcar','INT',0)
     626                 :             : 
     627         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtprocar
     628                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtprocar','INT',0)
     629                 :             : 
     630         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtpot
     631                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtpot','INT',0)
     632                 :             : 
     633         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtpsps
     634                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtpsps','INT',0)
     635                 :             : 
     636         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtspcur
     637                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtspcur','INT',0)
     638                 :             : 
     639         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtstm
     640                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtstm','INT',0)
     641                 :             : 
     642         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtsuscep
     643                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtsuscep','INT',0)
     644                 :             : 
     645         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvclmb
     646                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvclmb','INT',0)
     647                 :             : 
     648         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvha
     649                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvha','INT',0)
     650                 :             : 
     651         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvhxc
     652                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvhxc','INT',0)
     653                 :             : 
     654         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtkbff
     655                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtkbff','INT',0)
     656                 :             : 
     657         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvol
     658                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvol','INT',0)
     659                 :             : 
     660         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvolimg
     661                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvolimg','INT',0)
     662                 :             : 
     663         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvpsp
     664                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvpsp','INT',0)
     665                 :             : 
     666         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtvxc
     667                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtvxc','INT',0)
     668                 :             : 
     669         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtwant
     670                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtwant','INT',0)
     671                 :             : 
     672         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtwf
     673                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtwf','INT',0)
     674                 :             : 
     675         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtwf_full
     676                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtwf_full','INT',0)
     677                 :             : 
     678         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prtxml
     679                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prtxml','INT',0)
     680                 :             : 
     681                 :             : !prt1dm
     682         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prt1dm
     683                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prt1dm','INT',0)
     684                 :             : 
     685                 :             :  !ptcharge
     686         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     687         [ +  + ]:       62860 :    do ii = 1, ntypat
     688                 :       58276 :      dprarr(ii,idtset) = dtsets(idtset)%ptcharge(ii)
     689                 :             :    end do ! end loop over ntypat
     690                 :             :  end do ! end loop over datasets
     691                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'ptcharge','DPR',0)
     692                 :             : 
     693         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%prt_lorbmag
     694                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'prt_lorbmag','INT',0)
     695                 :             : 
     696         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ptgroupma
     697                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ptgroupma','INT',0)
     698                 :             : 
     699         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%pulayhiststore
     700                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'pulayhiststore','INT',0)
     701                 :             : 
     702         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%pvelmax(1)
     703         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%pvelmax(2)
     704         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%pvelmax(3)
     705                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'pvelmax','DPR',0)
     706                 :             : 
     707         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%pw_unbal_thresh
     708                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'pw_unbal_thresh','DPR',0)
     709                 :             : 
     710                 :             : !###########################################################
     711                 :             : !### 03. Print all the input variables (Q)
     712                 :             : !##
     713                 :             : 
     714                 :             : !qmass
     715                 :        4584 :  narr=nnos ! default size for all datasets
     716         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     717                 :       25714 :    narrm(idtset)=dtsets(idtset)%nnos
     718         [ +  + ]:       25714 :    if(idtset==0)narrm(idtset)=mxvals%nnos
     719         [ +  + ]:       30298 :    if (narrm(idtset)>0) then
     720         [ +  + ]:         208 :      dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%qmass(1:narrm(idtset))
     721                 :             :    end if
     722                 :             :  end do
     723                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'qmass','DPR',multivals%nnos)
     724                 :             : 
     725         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%qprtrb(1)
     726         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%qprtrb(2)
     727         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%qprtrb(3)
     728                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'qprtrb','INT',0)
     729                 :             : 
     730         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%qptn(1)
     731         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%qptn(2)
     732         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%qptn(3)
     733                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'qpt','DPR',0)
     734                 :             : 
     735         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%qgbt(1)
     736         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%qgbt(2)
     737         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%qgbt(3)
     738                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'qgbt','DPR',0)
     739                 :             : 
     740         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%qgbt_cart(1)
     741         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%qgbt_cart(2)
     742         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%qgbt_cart(3)
     743                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'qgbt_cart','DPR',0)
     744                 :             : 
     745                 :             :  !qptdm
     746                 :        4584 :  narr=3*dtsets(1)%nqptdm ! default size for all datasets
     747         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     748         [ +  + ]:       30298 :    if(idtset/=0)then
     749                 :       21130 :      narrm(idtset)=3*dtsets(idtset)%nqptdm
     750         [ +  + ]:       21130 :      if (narrm(idtset)>0)&
     751         [ +  + ]:          24 :        dprarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%qptdm(1:3,1:dtsets(idtset)%nqptdm), [narrm(idtset)])
     752                 :             :    else
     753                 :        4584 :      narrm(idtset)=3*mxvals%nqptdm
     754         [ +  + ]:        4584 :      if (narrm(idtset)>0)&
     755         [ +  + ]:           8 :      dprarr(1:narrm(idtset),idtset)= reshape(dtsets(idtset)%qptdm(1:3,1:mxvals%nqptdm), [narrm(idtset)])
     756                 :             :    end if
     757                 :             :  end do
     758                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'qptdm','DPR',multivals%nqptdm)
     759                 :             : 
     760         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     761         [ +  + ]:       62860 :    do ii = 1, ntypat
     762                 :       58276 :      dprarr(ii,idtset) = dtsets(idtset)%quadmom(ii)
     763                 :             :    end do ! end loop over ntypat
     764                 :             :  end do ! end loop over datasets
     765                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'quadmom','DPR',0)
     766                 :             : 
     767         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%quadquad
     768                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'quadquad','INT',0)
     769                 :             : 
     770                 :             : 
     771                 :             : !###########################################################
     772                 :             : !### 03. Print all the input variables (R)
     773                 :             : !##
     774                 :             : 
     775                 :             : !variables used for the random positions in unit cell
     776         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%random_atpos
     777                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'random_atpos','INT',0)
     778                 :             : 
     779         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ratopt
     780                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ratopt','INT',0)
     781                 :             : 
     782         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%ratsm
     783                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ratsm','LEN',0)
     784                 :             : 
     785         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     786         [ +  + ]:       62860 :    do ii = 1, ntypat
     787                 :       58276 :      dprarr(ii,idtset) = dtsets(idtset)%ratsph(ii)
     788                 :             :    end do ! end loop over ntypat
     789                 :             :  end do ! end loop over datasets
     790                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'ratsph','LEN',0)
     791                 :             : 
     792   [ +  +  +  + ]:    19966390 :  dprarr = zero
     793         [ +  + ]:       30298 :  dprarr(1,:) = dtsets(:)%ratsph_extra
     794                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ratsph_extra','LEN',0)
     795                 :             : 
     796         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rcpaw_frocc
     797                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_frocc','INT',0)
     798                 :             : 
     799         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rcpaw_updatetnc
     800                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_updatetnc','INT',0)
     801                 :             : 
     802         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rcpaw_elin
     803                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_elin','INT',0)
     804                 :             : 
     805         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rcpaw_prtpaw
     806                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_prtpaw','INT',0)
     807                 :             : 
     808         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rcpaw_tpaw
     809                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_tpaw','INT',0)
     810                 :             : 
     811         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rcpaw_vhtnzc
     812                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_vhtnzc','INT',0)
     813                 :             : 
     814         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rcpaw_tolnc
     815                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcpaw_tolnc','DPR',0)
     816                 :             : 
     817         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     818         [ +  + ]:       81726 :    do ii = 1, 2
     819                 :       77142 :      intarr(ii,idtset) = dtsets(idtset)%rcpaw_updatepaw(ii)
     820                 :             :    end do ! end loop over ntypat
     821                 :             :  end do ! end loop over datasets
     822                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'rcpaw_updatepaw','INT',0)
     823                 :             : 
     824         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     825         [ +  + ]:       62860 :    do ii = 1, ntypat
     826                 :       58276 :      intarr(ii,idtset) = dtsets(idtset)%rcpaw_rctypat(ii)
     827                 :             :    end do ! end loop over ntypat
     828                 :             :  end do ! end loop over datasets
     829                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'rcpaw_rctypat','INT',0)
     830                 :             : 
     831         [ +  + ]:       30298 :  do idtset=0, ndtset_alloc
     832         [ +  + ]:       62860 :    do ii = 1, ntypat
     833                 :       58276 :      dprarr(ii,idtset) = dtsets(idtset)%rcpaw_sc(ii)
     834                 :             :    end do ! end loop over ntypat
     835                 :             :  end do ! end loop over datasets
     836                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'rcpaw_sc','DPR',0)
     837                 :             : 
     838         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rcut
     839                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rcut','LEN',0)
     840                 :             : 
     841                 :             : !Variables used for recursion method
     842         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%recefermi
     843                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'recefermi','ENE',0)
     844                 :             : 
     845         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%recgratio
     846                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'recgratio','INT',0)
     847                 :             : 
     848         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%recnpath
     849                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'recnpath','INT',0)
     850                 :             : 
     851         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%recnrec
     852                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'recnrec','INT',0)
     853                 :             : 
     854         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%recptrott
     855                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'recptrott','INT',0)
     856                 :             : 
     857         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%recrcut
     858                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'recrcut','LEN',0)
     859                 :             : 
     860         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rectesteg
     861                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rectesteg','INT',0)
     862                 :             : 
     863         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rectolden
     864                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rectolden','DPR',0)
     865                 :             : 
     866         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%red_dfield(1)    !!HONG
     867         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%red_dfield(2)
     868         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%red_dfield(3)
     869                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'red_dfield','DPR',0)
     870                 :             : 
     871         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%red_efield(1)    !!HONG
     872         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%red_efield(2)
     873         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%red_efield(3)
     874                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'red_efield','DPR',0)
     875                 :             : 
     876         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%red_efieldbar(1)   !!HONG
     877         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%red_efieldbar(2)
     878         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%red_efieldbar(3)
     879                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'red_efieldbar','DPR',0)
     880                 :             : 
     881         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%restartxf
     882                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'restartxf','INT',0)
     883                 :             : 
     884                 :             : !intarr(1,:)=dtsets(:)%rfasr
     885                 :             : !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfasr','INT',0)
     886                 :             : 
     887                 :        4584 :  test_write=0
     888         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc
     889   [ +  +  +  + ]:       25714 :    if(dtsets(idtset)%rfatpol(1)/=1 .or. dtsets(idtset)%rfatpol(2)/=dtsets(idtset)%natom)test_write=1
     890                 :             :  enddo
     891         [ +  + ]:        4584 :  if(test_write==1)then
     892         [ +  + ]:        1084 :    intarr(1,:)=dtsets(:)%rfatpol(1)
     893         [ +  + ]:        1084 :    intarr(2,:)=dtsets(:)%rfatpol(2)
     894                 :         164 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'rfatpol','INT',0)
     895                 :             :  endif
     896                 :             : 
     897         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfddk
     898                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfddk','INT',0)
     899                 :             : 
     900         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfdir(1)
     901         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%rfdir(2)
     902         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%rfdir(3)
     903                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'rfdir','INT',0)
     904                 :             : 
     905         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfelfd
     906                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfelfd','INT',0)
     907                 :             : 
     908         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rfeta
     909                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rfeta','ENE',0)
     910                 :             : 
     911         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfmagn
     912                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfmagn','INT',0)
     913                 :             : 
     914         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfmeth
     915                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfmeth','INT',0)
     916                 :             : 
     917         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rfomega
     918                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rfomega','ENE',0)
     919                 :             : 
     920         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfphon
     921                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfphon','INT',0)
     922                 :             : 
     923         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfstrs
     924                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfstrs','INT',0)
     925                 :             : 
     926         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rfstrs_ref
     927                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rfstrs_ref','INT',0)
     928                 :             : 
     929         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rf2_dkdk
     930                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rf2_dkdk','INT',0)
     931                 :             : 
     932         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rf2_dkde
     933                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'rf2_dkde','INT',0)
     934                 :             : 
     935         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rf2_pert1_dir(1)
     936         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%rf2_pert1_dir(2)
     937         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%rf2_pert1_dir(3)
     938                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'rf2_pert1_dir','INT',0)
     939                 :             : 
     940         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rf2_pert2_dir(1)
     941         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%rf2_pert2_dir(2)
     942         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%rf2_pert2_dir(3)
     943                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'rf2_pert2_dir','INT',0)
     944                 :             : 
     945         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rhoqpmix
     946                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rhoqpmix','DPR',0)
     947                 :             : 
     948         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%rifcsph
     949                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rifcsph','DPR',0)
     950                 :             : 
     951         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rmm_diis
     952                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rmm_diis','INT',0)
     953         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%rmm_diis_savemem
     954                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'rmm_diis_savemem','INT',0)
     955                 :             : 
     956                 :             : !rprim
     957   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
     958         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
     959                 :       25714 :    narrm(idtset)=9
     960         [ +  + ]:       56764 :    do iimage=1,nimagem(idtset)
     961                 :       25714 :      if (narrm(idtset)>0) then
     962                 :             :        dprarr_images(1:narrm(idtset),iimage,idtset)=&
     963         [ +  + ]:       52932 : &       reshape(results_out(idtset)%rprim(1:3,1:3,iimage), (/ narrm(idtset) /) )
     964                 :             :      end if
     965                 :             :    end do
     966                 :             :  end do
     967                 :             :  call prttagm_images(dprarr_images,iout,jdtset_,-2,marr,narrm,ncid,ndtset_alloc,'rprim','DPR',&
     968                 :        4584 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg,forceprint=2)
     969                 :             : 
     970                 :             : 
     971                 :             : !###########################################################
     972                 :             : !### 03. Print all the input variables (S)
     973                 :             : !##
     974                 :             : 
     975                 :             : !shiftk (printed only when kptopt>0)
     976   [ +  +  +  + ]:       25714 :  if(sum((dtsets(1:ndtset_alloc)%kptopt)**2)/=0)then
     977                 :     4189906 :    multi_kptopt=0
     978         [ +  + ]:     4189906 :    dprarr(:,0)=0.0_dp
     979                 :        3190 :    narr=3*dtsets(1)%nshiftk ! default size for all datasets
     980         [ +  + ]:       15722 :    do idtset=1,ndtset_alloc       ! specific size for each dataset
     981                 :       12532 :      narrm(idtset)=3*dtsets(idtset)%nshiftk
     982         [ +  - ]:       12532 :      if (narrm(idtset)>0) then
     983                 :             :        dprarr(1:narrm(idtset),idtset)=&
     984         [ +  + ]:       25064 : &       reshape(dtsets(idtset)%shiftk(1:3,1:dtsets(idtset)%nshiftk),(/ narrm(idtset) /) )
     985                 :             :      end if
     986         [ +  + ]:       15722 :      if(dtsets(idtset)%kptopt<=0)then
     987                 :         892 :        narrm(idtset)=0
     988                 :         892 :        multi_kptopt=1
     989                 :             :      end if
     990                 :             :    end do
     991                 :        3190 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'shiftk','DPR',multivals%nshiftk)
     992                 :             : !  End of test to see whether kptopt/=0 for some dataset
     993                 :             :  end if
     994                 :             : 
     995         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%sigma_bsum_range(1)
     996         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%sigma_bsum_range(2)
     997                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'sigma_bsum_range','INT',0)
     998                 :             : 
     999         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%sigma_erange(1)
    1000         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%sigma_erange(2)
    1001                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'sigma_erange','ENE',0)
    1002                 :             : 
    1003         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%transport_ngkpt(1)
    1004         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%transport_ngkpt(2)
    1005         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%transport_ngkpt(3)
    1006                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'transport_ngkpt','INT',0)
    1007                 :             : 
    1008         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%sigma_ngkpt(1)
    1009         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%sigma_ngkpt(2)
    1010         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%sigma_ngkpt(3)
    1011                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'sigma_ngkpt','INT',0)
    1012                 :             : 
    1013         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%signperm
    1014                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'signperm','INT',0)
    1015                 :             : 
    1016         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%slabwsrad
    1017                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'slabwsrad','DPR',0)
    1018                 :             : 
    1019         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%slabzbeg
    1020                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'slabzbeg','DPR',0)
    1021                 :             : 
    1022         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%slabzend
    1023                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'slabzend','DPR',0)
    1024                 :             : 
    1025         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%slk_rankpp
    1026                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'slk_rankpp','INT',0)
    1027                 :             : 
    1028         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%smdelta
    1029                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'smdelta','INT',0)
    1030                 :             : 
    1031         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1032         [ +  + ]:       62972 :    intarr(1:npsp,idtset)=dtsets(idtset)%so_psp(1:npsp)
    1033                 :             :  end do
    1034                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,npsp,narrm,ncid,ndtset_alloc,'so_psp','INT',0)
    1035                 :             : 
    1036         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%spbroad
    1037                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'spbroad','ENE',0)
    1038                 :             : 
    1039         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%spgroup
    1040                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'spgroup','INT',0)
    1041                 :             : 
    1042                 :             : !spinat
    1043         [ +  + ]:     4416072 :  dprarr(:,0)=0.0_dp
    1044                 :        4584 :  narr=3*natom ! default size for all datasets
    1045         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc       ! specific size for each dataset
    1046                 :       21130 :    narrm(idtset)=3*dtsets(idtset)%natom
    1047         [ +  - ]:       21130 :    if (narrm(idtset)>0) then
    1048         [ +  + ]:       42260 :      dprarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%spinat_in(1:3,1:dtsets(idtset)%natom), (/narrm(idtset)/))
    1049                 :             :    end if
    1050   [ +  +  +  +  :      391922 :    if(sum(abs( dtsets(idtset)%spinat_in(1:3,1:dtsets(idtset)%natom))) < tol12 ) narrm(idtset)=0
                   +  + ]
    1051                 :             :  end do
    1052                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'spinat','DPR',multivals%natom)
    1053                 :             : 
    1054                 :             : !spinat_cart
    1055                 :        4584 :   nontrivial_spinaxis=.false.
    1056         [ +  + ]:       25710 :  do idtset=1,ndtset_alloc
    1057   [ +  +  +  +  :       63382 :    if (any(abs(dtsets(idtset)%spinaxis(1:2)) > tol8) .or. &
             +  +  +  - ]
    1058                 :        4580 :        abs(dtsets(idtset)%spinaxis(3) - 1.0_dp) > tol8) then
    1059                 :             :      nontrivial_spinaxis=.true.
    1060                 :             :      exit
    1061                 :             :    end if
    1062                 :             :  end do
    1063         [ +  + ]:        4584 :  if (nontrivial_spinaxis) then
    1064         [ +  + ]:         244 :    dprarr(:,0)=0.0_dp
    1065                 :             :    narr=3*natom ! default size for all datasets
    1066         [ +  + ]:          12 :    do idtset=1,ndtset_alloc       ! specific size for each dataset
    1067                 :           8 :      narrm(idtset)=3*dtsets(idtset)%natom
    1068         [ +  - ]:           8 :      if (narrm(idtset)>0) then
    1069         [ +  + ]:          16 :        dprarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%spinat_cart(1:3,1:dtsets(idtset)%natom), (/narrm(idtset)/))
    1070                 :             :      end if
    1071   [ +  +  +  +  :          44 :      if(sum(abs( dtsets(idtset)%spinat_cart(1:3,1:dtsets(idtset)%natom))) < tol12 ) narrm(idtset)=0
                   -  + ]
    1072                 :             :    end do
    1073                 :           4 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'spinat_cart','DPR',multivals%natom)
    1074                 :             :  end if
    1075                 :             : 
    1076                 :             : ! spinaxis
    1077         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%spinaxis(1)
    1078         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%spinaxis(2)
    1079         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%spinaxis(3)
    1080                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'spinaxis','DPR',0)
    1081                 :             : 
    1082         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%spinmagntarget
    1083                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'spinmagntarget','DPR',0)
    1084                 :             : 
    1085         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%spmeth
    1086                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'spmeth','INT',0)
    1087                 :             : 
    1088         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%spnorbscl
    1089                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'spnorbscl','DPR',0)
    1090                 :             : 
    1091         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%stmbias
    1092                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'stmbias','DPR',0)
    1093                 :             : 
    1094         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%strfact
    1095                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'strfact','DPR',0)
    1096                 :             : 
    1097         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%string_algo
    1098                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'string_algo','INT',0)
    1099                 :             : 
    1100         [ +  + ]:       32088 :  do ii=1,6
    1101         [ +  + ]:      186372 :    dprarr(ii,:)=dtsets(:)%strtarget(ii)
    1102                 :             :  end do
    1103                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,6,narrm,ncid,ndtset_alloc,'strtarget','DPR',0)
    1104                 :             : 
    1105                 :             : !strten
    1106         [ +  + ]:        4584 :  if(choice==2)then
    1107   [ +  +  +  + ]:       25154 :    prtimg(:,:)=1
    1108         [ +  + ]:       13400 :    do idtset=0,ndtset_alloc       ! specific size for each dataset
    1109                 :       11144 :      compute_static_images=(dtsets(idtset)%istatimg>0)
    1110                 :       11144 :      narrm(idtset)=6
    1111         [ +  + ]:       13400 :      if(dtsets(idtset)%iscf>=0)then
    1112         [ +  + ]:       20160 :        do iimage=1,dtsets(idtset)%nimage
    1113                 :             :          if (narrm(idtset)>0) then
    1114         [ +  + ]:       71876 :            dprarr_images(1:narrm(idtset),iimage,idtset)=results_out(idtset)%strten(:,iimage)
    1115                 :             :          end if
    1116   [ +  +  +  + ]:       20160 :          if(.not.(dtsets(idtset)%dynimage(iimage)==1.or.compute_static_images))then
    1117                 :           8 :            prtimg(iimage,idtset)=0
    1118                 :             :          end if
    1119                 :             :        end do
    1120                 :             :      else
    1121                 :        1252 :        narrm(idtset)=0
    1122                 :             :      end if
    1123                 :             :    end do
    1124                 :             : !  This is a trick to force printing of strten even if zero, still not destroying the value of nimagem(0).
    1125                 :        2256 :    tmpimg0=nimagem(0)
    1126                 :        2256 :    nimagem(0)=0
    1127                 :             :    call prttagm_images(dprarr_images,iout,jdtset_,2,marr,narrm,ncid,ndtset_alloc,'strten','DPR',&
    1128                 :        2256 : &   mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1129                 :        2256 :    nimagem(0)=tmpimg0
    1130                 :             :  end if
    1131                 :             : 
    1132                 :             : !symafm
    1133         [ +  + ]:     4416072 :  intarr(:,0)=1
    1134                 :        4584 :  narr=nsym ! default size for all datasets
    1135         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc       ! specific size for each dataset
    1136                 :       21130 :    narrm(idtset)=dtsets(idtset)%nsym
    1137         [ +  - ]:       25714 :    if (narrm(idtset)>0) then
    1138         [ +  + ]:      550582 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%symafm(1:narrm(idtset))
    1139                 :             :    end if
    1140                 :             :  end do
    1141                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'symafm','INT', multivals%nsym)
    1142                 :             : 
    1143         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%symchi
    1144                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'symchi','INT',0)
    1145                 :             : 
    1146         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%symdynmat
    1147                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'symdynmat','INT',0)
    1148                 :             : 
    1149         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%symmorphi
    1150                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'symmorphi','INT',0)
    1151                 :             : 
    1152                 :             : !symrel
    1153         [ +  + ]:       45840 :  intarr(1:9,0)=(/ 1,0,0, 0,1,0, 0,0,1 /)
    1154                 :        4584 :  narr=9*nsym ! default size for all datasets
    1155         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc       ! specific size for each dataset
    1156                 :       21130 :    narrm(idtset)=9*dtsets(idtset)%nsym
    1157         [ +  - ]:       25714 :    if (narrm(idtset)>0) then
    1158                 :             :      intarr(1:narrm(idtset),idtset)=&
    1159         [ +  + ]:       42260 : &     reshape(dtsets(idtset)%symrel(1:3,1:3,1:dtsets(idtset)%nsym), [narrm(idtset)] )
    1160                 :             :    end if
    1161                 :             :  end do
    1162                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,3,marr,narr,narrm,ncid,ndtset_alloc,'symrel','INT', multivals%nsym)
    1163                 :             : 
    1164         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%symsigma
    1165                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'symsigma','INT',0)
    1166                 :             : 
    1167         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%symsigma_de
    1168                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'symsigma_de','ENE',0)
    1169                 :             : 
    1170         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%symv1scf
    1171                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'symv1scf','INT',0)
    1172                 :             : 
    1173         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%scr_wrange(1)
    1174         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%scr_wrange(2)
    1175                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'scr_wrange','INT',0)
    1176                 :             : 
    1177                 :             : !###########################################################
    1178                 :             : !### 03. Print all the input variables (T)
    1179                 :             : !##
    1180                 :             : 
    1181         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%td_maxene
    1182                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'td_maxene','DPR',0)
    1183                 :             : 
    1184         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%td_mexcit
    1185                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'td_mexcit','INT',0)
    1186                 :             : 
    1187         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%tfkinfunc
    1188                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'tfkinfunc','INT',0)
    1189                 :             : 
    1190         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tfw_toldfe
    1191                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tfw_toldfe','ENE',0)
    1192                 :             : 
    1193         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%timdisp
    1194                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'timdisp','INT',0)
    1195                 :             : 
    1196         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%tim1rev
    1197                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'tim1rev','INT',0)
    1198                 :             : 
    1199                 :             : 
    1200                 :             : !timopt
    1201                 :        4584 :  timopt_default=1; if(xmpi_paral==1) timopt_default=0
    1202                 :             : 
    1203         [ +  + ]:        4584 :  if(timopt/=timopt_default)then
    1204         [ +  + ]:        1076 :    intarr(1,:)=timopt
    1205                 :         252 :    intarr(1,0)=timopt_default
    1206                 :         252 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'timopt','INT',0)
    1207                 :             :  end if
    1208                 :             : 
    1209                 :             : !WVL - tails related variables
    1210         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%tl_nprccg
    1211                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'tl_nprccg','INT',0)
    1212         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tl_radius
    1213                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tl_radius','DPR',0)
    1214                 :             : 
    1215                 :             : !tnons
    1216         [ +  + ]:     4416072 :  dprarr(:,0)=0.0_dp
    1217                 :        4584 :  narr=3*nsym ! default size for all datasets
    1218         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc       ! specific size for each dataset
    1219                 :       21130 :    narrm(idtset)=3*dtsets(idtset)%nsym
    1220         [ +  - ]:       25714 :    if (narrm(idtset)>0) then
    1221         [ +  + ]:       42260 :      dprarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%tnons(1:3,1:dtsets(idtset)%nsym), [narrm(idtset)])
    1222                 :             :    end if
    1223                 :             :  end do
    1224                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,-3,marr,narr,narrm,ncid,ndtset_alloc,'tnons','DPR',multivals%nsym)
    1225                 :             : 
    1226         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolcum
    1227                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolcum','DPR',0)
    1228                 :             : 
    1229         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%toldfe
    1230                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'toldfe','ENE',0)
    1231                 :             : 
    1232         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolmxde
    1233                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolmxde','ENE',0)
    1234                 :             : 
    1235         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%toldff
    1236                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'toldff','DPR',0)
    1237                 :             : 
    1238         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%toldmag
    1239                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'toldmag','DPR',0)
    1240                 :             : 
    1241         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolimg
    1242                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolimg','ENE',0)
    1243                 :             : 
    1244         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolmxf
    1245                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolmxf','DPR',0)
    1246                 :             : 
    1247         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolrde
    1248                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolrde','DPR',0)
    1249                 :             : 
    1250         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolrff
    1251                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolrff','DPR',0)
    1252                 :             : 
    1253         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolsym
    1254                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolsym','DPR',0)
    1255                 :             : 
    1256         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolvrs
    1257                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolvrs','DPR',0)
    1258                 :             : 
    1259         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tolwfr
    1260                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolwfr','DPR',0)
    1261                 :             : 
    1262   [ +  +  +  +  :       30026 :  if ( any( abs(dtsets(:)%tolwfr-dtsets(:)%tolwfr_diago)>tiny(zero) ) ) then ! output tolwfr_diago only if different than tolwfr
                   +  + ]
    1263         [ +  + ]:         428 :    dprarr(1,:)=dtsets(:)%tolwfr_diago
    1264                 :          72 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tolwfr_diago','DPR',0)
    1265                 :             :  end if
    1266                 :             : 
    1267         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tphysel
    1268                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tphysel','ENE',0)
    1269                 :             : 
    1270   [ +  +  +  +  :       90894 :  dprarr(1,:) = dtsets(:)%tmesh(1); dprarr(2,:) = dtsets(:)%tmesh(2); dprarr(3,:) = dtsets(:)%tmesh(3)
                   +  + ]
    1271                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'tmesh','DPR',0)
    1272                 :             : 
    1273         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%tsmear
    1274                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'tsmear','ENE',0)
    1275                 :             : 
    1276                 :             : !typat
    1277                 :        4584 :  narr=natom                      ! default size for all datasets
    1278         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1279                 :       25714 :    narrm(idtset)=dtsets(idtset)%natom
    1280         [ +  + ]:       25714 :    if(idtset==0)narrm(idtset)=mxvals%natom
    1281         [ +  - ]:       30298 :    if (narrm(idtset)>0) then
    1282         [ +  + ]:      132616 :      intarr(1:narrm(idtset),idtset)=dtsets(idtset)%typat(1:narrm(idtset))
    1283                 :             :    end if
    1284                 :             :  end do
    1285                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,4,marr,narr,narrm,ncid,ndtset_alloc,'typat','INT',multivals%natom,forceprint=2)
    1286                 :             : 
    1287                 :             : !###########################################################
    1288                 :             : !### 03. Print all the input variables (U)
    1289                 :             : !##
    1290         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ucrpa
    1291                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ucrpa','INT',0)
    1292                 :             : 
    1293         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%ucrpa_bands(1)
    1294         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%ucrpa_bands(2)
    1295                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'ucrpa_bands','INT',0)
    1296                 :             : 
    1297         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%ucrpa_window(1)
    1298         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%ucrpa_window(2)
    1299                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'ucrpa_window','ENE',0)
    1300                 :             : 
    1301                 :             : !upawu
    1302   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
    1303         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1304                 :       25714 :    narrm(idtset)=dtsets(idtset)%ntypat
    1305         [ +  + ]:       25714 :    if (idtset==0) narrm(idtset)=mxvals%ntypat
    1306         [ +  + ]:       56764 :    do iimage=1,nimagem(idtset)
    1307         [ +  - ]:       52180 :      if (narrm(idtset)>0) then
    1308         [ +  + ]:       60340 :        dprarr_images(1:narrm(idtset),iimage,idtset)=dtsets(idtset)%upawu(1:narrm(idtset),iimage)
    1309                 :             :      end if
    1310                 :             :    end do
    1311                 :             :  end do
    1312                 :             :  call prttagm_images(dprarr_images,iout,jdtset_,1,marr,narrm,&
    1313                 :        4584 : & ncid,ndtset_alloc,'upawu','ENE',mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1314                 :             : 
    1315         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usedmatpu
    1316                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usedmatpu','INT',0)
    1317                 :             : 
    1318         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usedmft
    1319                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usedmft','INT',0)
    1320                 :             : 
    1321         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%useexexch
    1322                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'useexexch','INT',0)
    1323                 :             : 
    1324         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usefock
    1325                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usefock','INT',0)
    1326                 :             : 
    1327         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usepotzero
    1328                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usepotzero','INT',0)
    1329                 :             : 
    1330         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usekden
    1331                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usekden','INT',0)
    1332                 :             : 
    1333         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%use_gemm_nonlop
    1334                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'use_gemm_nonlop','INT',0)
    1335                 :             : 
    1336         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%useextfpmd
    1337                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'useextfpmd','INT',0)
    1338                 :             : 
    1339         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%use_yaml
    1340                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'use_yaml','INT',0)
    1341                 :             : 
    1342         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%use_nonscf_gkk
    1343                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'use_nonscf_gkk','INT',0)
    1344                 :             : 
    1345         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%use_gbt
    1346                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'use_gbt','INT',0)
    1347                 :             : 
    1348         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usepawu
    1349                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usepawu','INT',0)
    1350                 :             : 
    1351         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usepead
    1352                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usepead','INT',0)
    1353                 :             : 
    1354         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%useria
    1355                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'useria','INT',0)
    1356                 :             : 
    1357         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%userib
    1358                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'userib','INT',0)
    1359                 :             : 
    1360         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%useric
    1361                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'useric','INT',0)
    1362                 :             : 
    1363         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%userid
    1364                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'userid','INT',0)
    1365                 :             : 
    1366         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%userie
    1367                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'userie','INT',0)
    1368                 :             : 
    1369         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%userra
    1370                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'userra','DPR',0)
    1371                 :             : 
    1372         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%userrb
    1373                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'userrb','DPR',0)
    1374                 :             : 
    1375         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%userrc
    1376                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'userrc','DPR',0)
    1377                 :             : 
    1378         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%userrd
    1379                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'userrd','DPR',0)
    1380                 :             : 
    1381         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%userre
    1382                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'userre','DPR',0)
    1383                 :             : 
    1384         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%usewvl
    1385                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usewvl','INT',0)
    1386                 :             : 
    1387         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%usexcnhat_orig
    1388                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'usexcnhat','INT',0)
    1389                 :             : 
    1390         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%useylm
    1391                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'useylm','INT',0,firstchar=firstchar_ylm)
    1392                 :             : 
    1393         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%use_slk
    1394                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'use_slk','INT',0, firstchar="-")
    1395                 :             : 
    1396         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%use_oldchi
    1397                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'use_oldchi','INT',0)
    1398                 :             : 
    1399                 :             : 
    1400                 :             : !###########################################################
    1401                 :             : !### 03. Print all the input variables (V)
    1402                 :             : !##
    1403                 :             : 
    1404   [ +  +  +  + ]:       25714 :  if(sum(dtsets(1:ndtset_alloc)%prtwant) >1)then
    1405                 :             : !  van der Waals correction with MLWFs related variables
    1406   [ +  +  +  +  :         572 :    if(any(dtsets(1:ndtset_alloc)%vdw_xc==10).or.any(dtsets(1:ndtset_alloc)%vdw_xc==11).or.&
          +  +  +  +  +  
          +  +  +  +  +  
                   +  + ]
    1407                 :             :       any(dtsets(1:ndtset_alloc)%vdw_xc==14))then
    1408         [ +  + ]:          48 :      intarr(1,:)=dtsets(:)%vdw_nfrag
    1409                 :          12 :      call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vdw_nfrag','INT',0)
    1410                 :             :    end if !vdw_xc==10,11,14
    1411   [ +  +  +  +  :         572 :    if(any(dtsets(1:ndtset_alloc)%vdw_xc==10).or.any(dtsets(1:ndtset_alloc)%vdw_xc==11).or.&
          +  +  +  +  +  
          +  +  +  +  +  
                   +  + ]
    1412                 :             :       any(dtsets(1:ndtset_alloc)%vdw_xc==14))then
    1413         [ +  + ]:          48 :      intarr(1,:)=dtsets(:)%vdw_supercell(1)
    1414         [ +  + ]:          48 :      intarr(2,:)=dtsets(:)%vdw_supercell(2)
    1415         [ +  + ]:          48 :      intarr(3,:)=dtsets(:)%vdw_supercell(3)
    1416                 :          12 :      call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'vdw_supercell','INT',0)
    1417                 :             :    end if !vdw_xc==10,11,14
    1418                 :             :  end if !prtwant>1
    1419                 :             : 
    1420         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vdw_tol
    1421                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'vdw_tol','DPR',0)
    1422         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vdw_tol_3bt
    1423                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'vdw_tol_3bt','DPR',0)
    1424                 :             : 
    1425   [ +  +  +  + ]:       25714 :  if(sum(dtsets(1:ndtset_alloc)%prtwant) >1)then
    1426                 :             : !  van der Waals correction with MLWFs related variables
    1427   [ +  +  +  +  :         380 :    if(any(dtsets(1:ndtset_alloc)%vdw_xc==10).or.any(dtsets(1:ndtset_alloc)%vdw_xc==11))then
          +  +  +  +  +  
                      + ]
    1428         [ +  + ]:          16 :      do iat=1,mxvals%natom
    1429         [ +  + ]:          40 :        intarr(iat,:)=dtsets(:)%vdw_typfrag(iat)
    1430                 :             :      end do
    1431                 :           8 :      call prttagm(dprarr,intarr,iout,jdtset_,2,marr,mxvals%natom,narrm,ncid,ndtset_alloc,'vdw_typfrag','INT',0)
    1432                 :             :    end if !vdw_xc==10 or xc==11
    1433                 :             :  end if !prtwant>1
    1434                 :             : 
    1435         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vdw_xc
    1436                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vdw_xc','INT',0)
    1437                 :             : 
    1438   [ +  +  -  + ]:       25714 :  if(sum(dtsets(1:ndtset_alloc)%prtvdw) >1)then
    1439   [ #  #  #  #  :           0 :    if(any(dtsets(1:ndtset_alloc)%vdw_xc<10))then
                   #  # ]
    1440         [ #  # ]:           0 :      dprarr(1,:)=dtsets(:)%vdw_df_threshold
    1441                 :           0 :      call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'vdw_df_threshold','ENE',0)
    1442                 :             :    end if
    1443                 :             :  end if
    1444                 :             : 
    1445                 :             : !vel
    1446   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
    1447         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1448         [ +  + ]:       25714 :    if(idtset/=0)then
    1449                 :       21130 :      size1=dtsets(idtset)%natom
    1450                 :             :    else
    1451                 :        4584 :      size1=mxvals%natom
    1452                 :             :    end if
    1453                 :       25714 :    narrm(idtset)=3*size1
    1454         [ +  + ]:       56764 :    do iimage=1,nimagem(idtset)
    1455         [ +  - ]:       52180 :      if (narrm(idtset)>0) then
    1456                 :             :        dprarr_images(1:narrm(idtset),iimage,idtset)=&
    1457         [ +  + ]:       52932 : &       reshape(results_out(idtset)%vel(1:3,1:size1,iimage), (/ narrm(idtset) /) )
    1458                 :             :      end if
    1459                 :             :    end do
    1460                 :             :  end do
    1461                 :             :  call prttagm_images(dprarr_images,iout,jdtset_,2,marr,narrm,ncid,ndtset_alloc,'vel','DPR',&
    1462                 :        4584 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1463                 :             : 
    1464                 :             : !vel_cell
    1465                 :             : !At present, vel_cell does not depend on image... but this might change in the future.
    1466   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
    1467                 :             :  if (.true.) then
    1468                 :             : !  if(mxvals%nimage==1)then
    1469         [ +  + ]:       30298 :    do idtset=0,ndtset_alloc
    1470                 :       30298 :      dprarr(1:9,idtset)= reshape(results_out(idtset)%vel_cell(:,:,1),(/9/))
    1471                 :             :    end do
    1472                 :        4584 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,9,narrm,ncid,ndtset_alloc,'vel_cell','DPR',0)
    1473                 :             : !  else
    1474                 :             : !  do idtset=1,ndtset_alloc       ! specific size for each dataset
    1475                 :             : !  nimagem(idtset)=dtsets(idtset)%nimage
    1476                 :             : !  narrm(idtset)=9
    1477                 :             : !  do iimage=1,dtsets(idtset)%nimage
    1478                 :             : !  if (narrm(idtset)>0) then
    1479                 :             : !  dprarr_images(1:narrm(idtset),iimage,idtset)=&
    1480                 :             : !  &         reshape(results_out(idtset)%vel_cell(1:3,1:3,iimage),&
    1481                 :             : !  &         (/ narrm(idtset) /) )
    1482                 :             : !  end if
    1483                 :             : !  end do
    1484                 :             : !  end do
    1485                 :             : !  call prttagm_images(dprarr_images,iout,jdtset_,&
    1486                 :             : !  &   marr,narrm,ncid,ndtset_alloc,'vel_cell',&
    1487                 :             : !  &   mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1488                 :             :  end if
    1489                 :             : 
    1490         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vis
    1491                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'vis','DPR',0)
    1492                 :             : 
    1493         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vloc_rcut
    1494                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'vloc_rcut','LEN',0)
    1495                 :             : 
    1496         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vprtrb(1)
    1497         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%vprtrb(2)
    1498                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'vprtrb','ENE',0)
    1499                 :             : 
    1500         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_avg_g
    1501                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_avg_g','INT',0)
    1502                 :             : 
    1503         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_translate
    1504                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_translate','INT',0)
    1505                 :             : 
    1506         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_interp
    1507                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_interp','INT',0)
    1508                 :             : 
    1509         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_nstates
    1510                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_nstates','INT',0)
    1511                 :             : 
    1512         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_nstep
    1513                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_nstep','INT',0)
    1514                 :             : 
    1515         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_nstep_ort
    1516                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_nstep_ort','INT',0)
    1517                 :             : 
    1518         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_select
    1519                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_select','INT',0)
    1520                 :             : 
    1521         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_mesh_fact
    1522                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_mesh_fact','INT',0)
    1523                 :             : 
    1524         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vpq_mix_fact
    1525                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_mix_fact','DPR',0)
    1526                 :             : 
    1527         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vpq_tolgrs
    1528                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'vpq_tolgrs','DPR',0)
    1529                 :             : 
    1530         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%vpq_trvec(1)
    1531         [ +  + ]:       30298 :  intarr(2,:)=dtsets(:)%vpq_trvec(2)
    1532         [ +  + ]:       30298 :  intarr(3,:)=dtsets(:)%vpq_trvec(3)
    1533                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,3,marr,3,narrm,ncid,ndtset_alloc,'vpq_trvec','INT',0)
    1534                 :             : 
    1535         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vpq_gpr_energy(1)
    1536         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%vpq_gpr_energy(2)
    1537                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,3,marr,2,narrm,ncid,ndtset_alloc,'vpq_gpr_energy','DPR',0)
    1538                 :             : 
    1539         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vpq_gpr_length(1)
    1540         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%vpq_gpr_length(2)
    1541         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%vpq_gpr_length(3)
    1542                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,3,marr,3,narrm,ncid,ndtset_alloc,'vpq_gpr_length','DPR',0)
    1543                 :             : 
    1544         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%vcutgeo(1)
    1545         [ +  + ]:       30298 :  dprarr(2,:)=dtsets(:)%vcutgeo(2)
    1546         [ +  + ]:       30298 :  dprarr(3,:)=dtsets(:)%vcutgeo(3)
    1547                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,3,marr,3,narrm,ncid,ndtset_alloc,'vcutgeo','DPR',0)
    1548                 :             : 
    1549                 :             : !###########################################################
    1550                 :             : !### 03. Print all the input variables (W)
    1551                 :             : !##
    1552         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%wfinit
    1553                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'wfinit','INT',0)
    1554                 :             : 
    1555         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%wfmix
    1556                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'wfmix','DPR',0)
    1557                 :             : 
    1558         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%wfk_task
    1559                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'wfk_task','INT',0)
    1560                 :             : 
    1561         [ +  + ]:       30298 :  intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%wfoptalg
    1562                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'wfoptalg','INT',0,firstchar=firstchar_cuda)
    1563                 :             : 
    1564                 :             : !wtatcon
    1565                 :        4584 :  narr=3*natom*dtsets(1)%nconeq ! default size for all datasets
    1566         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1567         [ +  + ]:       30298 :    if(idtset/=0)then
    1568                 :       21130 :      narrm(idtset)=3*dtsets(idtset)%natom*dtsets(idtset)%nconeq
    1569         [ +  + ]:       21130 :      if (narrm(idtset)>0)&
    1570                 :             : &     dprarr(1:narrm(idtset),idtset)=&
    1571         [ +  + ]:          40 : &     reshape(dtsets(idtset)%wtatcon(1:3,1:dtsets(idtset)%natom,1:dtsets(idtset)%nconeq),(/ narrm(idtset) /) )
    1572                 :             :    else
    1573                 :        4584 :      narrm(idtset)=3*mxvals%natom*mxvals%nconeq
    1574         [ +  + ]:        4584 :      if (narrm(idtset)>0)&
    1575                 :             : &     dprarr(1:narrm(idtset),idtset)=&
    1576         [ +  + ]:          24 : &     reshape(dtsets(idtset)%wtatcon(1:3,1:mxvals%natom,1:mxvals%nconeq),(/ narrm(idtset) /) )
    1577                 :             :    end if
    1578                 :             :  end do
    1579                 :             : 
    1580                 :             :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'wtatcon','DPR',&
    1581                 :        4584 :    multivals%natom+multivals%nconeq)
    1582                 :             : 
    1583                 :             : !wtk
    1584         [ +  + ]:        4584 :  if (allocated(dtsets(0)%wtk)) then
    1585                 :     4041014 :    tnkpt=0
    1586         [ +  + ]:     4041014 :    dprarr(:,0)=1
    1587                 :        4496 :    narr=dtsets(1)%nkpt ! default size for all datasets
    1588   [ +  +  +  + ]:        4496 :    if(prtvol_glob==0 .and. narr>nkpt_max)then
    1589                 :         190 :      narr=nkpt_max
    1590                 :         190 :      tnkpt=1
    1591                 :             :    end if
    1592         [ +  + ]:       25368 :    do idtset=1,ndtset_alloc       ! specific size for each dataset
    1593                 :       20872 :      narrm(idtset)=dtsets(idtset)%nkpt
    1594   [ +  -  +  + ]:      373690 :      if (narrm(idtset)>0) dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%wtk(1:narrm(idtset))+tol12
    1595                 :             : 
    1596   [ +  +  +  + ]:       25368 :      if(prtvol_glob==0 .and. narrm(idtset)>nkpt_max)then
    1597                 :        1388 :        narrm(idtset)=nkpt_max
    1598                 :        1388 :        tnkpt=1
    1599                 :             :      end if
    1600                 :             :    end do
    1601                 :        4496 :    call prttagm(dprarr,intarr,iout,jdtset_,4,marr,narr,narrm,ncid,ndtset_alloc,'wtk','DPR',multivals%nkpt)
    1602         [ +  + ]:        4496 :    if(tnkpt==1) write(iout,'(23x,a,i3,a)' ) 'outvars : Printing only first ',nkpt_max,' k-points.'
    1603                 :             :  end if
    1604                 :             : 
    1605                 :             : !WVL - wavelets variables
    1606   [ +  +  +  -  :       30298 :  if (any(dtsets(:)%usewvl==1)) then
                   -  + ]
    1607         [ #  # ]:           0 :    intarr(1,:)=dtsets(:)%wvl_bigdft_comp
    1608                 :           0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'wvl_bigdft_comp','INT',0)
    1609         [ #  # ]:           0 :    dprarr(1,:)=dtsets(:)%wvl_crmult
    1610                 :           0 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'wvl_crmult','DPR',0)
    1611         [ #  # ]:           0 :    dprarr(1,:)=dtsets(:)%wvl_frmult
    1612                 :           0 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'wvl_frmult','DPR',0)
    1613         [ #  # ]:           0 :    dprarr(1,:)=dtsets(:)%wvl_hgrid
    1614                 :           0 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'wvl_hgrid','DPR',0)
    1615         [ #  # ]:           0 :    intarr(1,:)=dtsets(:)%wvl_nprccg
    1616                 :           0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'wvl_nprccg','INT',0)
    1617                 :             :  end if
    1618                 :             : 
    1619                 :             : !Wannier90 interface related variables
    1620   [ +  +  +  + ]:       25714 :  if(sum(dtsets(1:ndtset_alloc)%prtwant) >1)then
    1621         [ +  + ]:         260 :    intarr(1,:)=dtsets(:)%w90iniprj
    1622                 :          64 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'w90iniprj','INT',0)
    1623         [ +  + ]:         260 :    intarr(1,:)=dtsets(:)%w90prtunk
    1624                 :          64 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'w90prtunk','INT',0)
    1625                 :             :  end if !prtwant>1
    1626                 :             : 
    1627                 :             : !###########################################################
    1628                 :             : !### 03. Print all the input variables (X)
    1629                 :             : !##
    1630                 :             : 
    1631                 :             : !xangst
    1632   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
    1633         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1634         [ +  + ]:       25714 :    if(idtset/=0)then
    1635                 :       21130 :      size1=dtsets(idtset)%natom
    1636                 :             :    else
    1637                 :        4584 :      size1=mxvals%natom
    1638                 :             :    end if
    1639                 :       25714 :    narrm(idtset)=3*size1
    1640         [ +  + ]:       56764 :    do iimage=1,nimagem(idtset)
    1641         [ +  - ]:       52180 :      if (narrm(idtset)>0) then
    1642         [ +  + ]:       52932 :        dprarr_images(1:narrm(idtset),iimage,idtset)=reshape(xangst_(1:3,1:size1,iimage,idtset), (/narrm(idtset)/))
    1643                 :             :      end if
    1644                 :             :    end do
    1645                 :             :  end do
    1646                 :             : 
    1647                 :             :  call prttagm_images(dprarr_images,iout,jdtset_,-2,marr,narrm,ncid,ndtset_alloc,'xangst','DPR',&
    1648                 :        4584 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1649                 :             : 
    1650                 :             : !xcart
    1651   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
    1652         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1653         [ +  + ]:       25714 :    if(idtset/=0)then
    1654                 :       21130 :      size1=dtsets(idtset)%natom
    1655                 :             :    else
    1656                 :        4584 :      size1=mxvals%natom
    1657                 :             :    end if
    1658                 :       25714 :    narrm(idtset)=3*size1
    1659         [ +  + ]:       56764 :    do iimage=1,nimagem(idtset)
    1660         [ +  - ]:       52180 :      if (narrm(idtset)>0) then
    1661         [ +  + ]:       52932 :        dprarr_images(1:narrm(idtset),iimage,idtset)=reshape(xcart_(1:3,1:size1,iimage,idtset), (/ narrm(idtset) /) )
    1662                 :             :      end if
    1663                 :             :    end do
    1664                 :             :  end do
    1665                 :             : 
    1666                 :             :  call prttagm_images(dprarr_images,iout,jdtset_,-2,marr,narrm,ncid,ndtset_alloc,'xcart','DPR',&
    1667                 :        4584 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1668                 :             : 
    1669         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%xc_denpos
    1670                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'xc_denpos','DPR',0)
    1671                 :             : 
    1672   [ +  +  +  +  :       60360 :  if (any(dtsets(:)%usekden==1).and.any(dtsets(:)%xc_taupos/=dtsets(:)%xc_denpos)) then
          +  +  +  +  +  
                      + ]
    1673         [ +  + ]:          16 :    dprarr(1,:)=dtsets(:)%xc_taupos
    1674                 :           4 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'xc_taupos','DPR',0)
    1675                 :             :  end if
    1676                 :             : 
    1677         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%xc_tb09_c
    1678                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'xc_tb09_c','DPR',0)
    1679                 :             : 
    1680         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%x1rdm
    1681                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'x1rdm','INT',0)
    1682                 :             : 
    1683         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%xg_nonlop_option
    1684                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'xg_nonlop_option','INT',0)
    1685                 :             : 
    1686                 :             : !xred
    1687   [ +  +  +  + ]:       57232 :  prtimg(:,:)=1
    1688         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1689         [ +  + ]:       25714 :    if(idtset/=0)then
    1690                 :       21130 :      size2=dtsets(idtset)%natom
    1691                 :             :    else
    1692                 :        4584 :      size2=mxvals%natom
    1693                 :             :    end if
    1694                 :       25714 :    narrm(idtset)=3*size2
    1695         [ +  + ]:       56764 :    do iimage=1,nimagem(idtset)
    1696         [ +  - ]:       52180 :      if (narrm(idtset)>0) then
    1697                 :             :        dprarr_images(1:narrm(idtset),iimage,idtset)=&
    1698         [ +  + ]:       52932 : &       reshape(results_out(idtset)%xred(:,1:size2,iimage), (/ narrm(idtset) /) )
    1699                 :             :      end if
    1700                 :             :    end do
    1701                 :             :  end do
    1702                 :             :  call prttagm_images(dprarr_images,iout,jdtset_,-2,marr,narrm,ncid,ndtset_alloc,'xred','DPR',&
    1703                 :        4584 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg,forceprint=2)
    1704                 :             : 
    1705                 :             : !xredsph_extra
    1706         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1707         [ +  + ]:       25714 :    if(idtset/=0)then
    1708                 :       21130 :      size2=dtsets(idtset)%natsph_extra
    1709                 :             :    else
    1710                 :             :      size2=0
    1711                 :             :    end if
    1712                 :       25714 :    narrm(idtset)=3*size2
    1713         [ +  + ]:       30298 :    if (narrm(idtset)>0) then
    1714         [ +  + ]:           8 :      dprarr(1:narrm(idtset),idtset)= reshape(dtsets(idtset)%xredsph_extra(:,1:size2), (/ narrm(idtset) /) )
    1715                 :             :    end if
    1716                 :             :  end do
    1717                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'xredsph_extra','DPR',1)
    1718                 :             : 
    1719                 :             : 
    1720                 :             : !###########################################################
    1721                 :             : !### 03. Print all the input variables (Y)
    1722                 :             : !##
    1723                 :             : 
    1724                 :             : !###########################################################
    1725                 :             : !### 03. Print all the input variables (Z)
    1726                 :             : !##
    1727                 :             : 
    1728         [ +  + ]:       30298 :  dprarr(1,:)=dtsets(:)%zcut
    1729                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'zcut','ENE',0)
    1730                 :             : 
    1731                 :             : !ziontypat   ! After all, should always echo this value
    1732   [ +  +  +  + ]:       30298 :  if(sum(dtsets(:)%ntypalch)>0)then
    1733                 :          32 :    narr=ntypat                    ! default size for all datasets
    1734         [ +  + ]:         144 :    do idtset=0,ndtset_alloc       ! specific size for each dataset
    1735                 :         112 :      narrm(idtset)=dtsets(idtset)%ntypat
    1736         [ +  + ]:         112 :      if(idtset==0)narrm(idtset)=mxvals%ntypat
    1737         [ +  - ]:         144 :      if (narrm(idtset)>0) then
    1738         [ +  + ]:         276 :        dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%ziontypat(1:narrm(idtset))
    1739                 :             :      end if
    1740                 :             :    end do
    1741                 :             :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
    1742                 :          32 :      narrm,ncid,ndtset_alloc,'ziontypat','DPR',multivals%ntypat,forceprint=2)
    1743                 :             :  end if
    1744                 :             : 
    1745         [ +  + ]:       30298 :  do idtset=0,ndtset_alloc
    1746         [ +  + ]:       62972 :    dprarr(1:npsp,idtset)=dtsets(idtset)%znucl(1:npsp)
    1747                 :             :  end do
    1748                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,4,marr,npsp,narrm,ncid,ndtset_alloc,'znucl','DPR',0,forceprint=2)
    1749                 :             : 
    1750         [ +  + ]:       30298 :  intarr(1,:)=dtsets(:)%zora
    1751                 :        4584 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'zora','INT',0)
    1752                 :             : 
    1753                 :             : !###########################################################
    1754                 :             : !## Deallocation for generic arrays, and for n-z variables
    1755                 :             : 
    1756         [ -  + ]:        4584 :  ABI_FREE(dprarr)
    1757         [ -  + ]:        4584 :  ABI_FREE(intarr)
    1758         [ -  + ]:        4584 :  ABI_FREE(narrm)
    1759         [ -  + ]:        4584 :  ABI_FREE(nimagem)
    1760         [ -  + ]:        4584 :  ABI_FREE(dprarr_images)
    1761         [ -  + ]:        4584 :  ABI_FREE(prtimg)
    1762         [ -  + ]:        4584 :  ABI_FREE(xangst_)
    1763         [ -  + ]:        4584 :  ABI_FREE(xcart_)
    1764                 :             : 
    1765                 :             : contains
    1766                 :             : !!***
    1767                 :             : 
    1768                 :             : !!****f* ABINIT/prtocc
    1769                 :             : !!
    1770                 :             : !! NAME
    1771                 :             : !! prtocc
    1772                 :             : !!
    1773                 :             : !! FUNCTION
    1774                 :             : !! Print the content of occ.
    1775                 :             : !! Due to the need to distinguish between different k-points and
    1776                 :             : !! different spin polarisations, prttagm.f cannot be used.
    1777                 :             : !! So, need a dedicated routine.
    1778                 :             : !!
    1779                 :             : !! INPUTS
    1780                 :             : !!  dtsets(0:ndtset_alloc)=<type datafiles_type>contains all input variables
    1781                 :             : !!  iout=unit number for echoed output
    1782                 :             : !!  jdtset_(0:ndtset_alloc)=list of dataset indices.
    1783                 :             : !!  ndtset_alloc=govern second dimension of intarr and dprarr
    1784                 :             : !!  prtvol_glob= if 0, minimal output volume, if 1, no restriction.
    1785                 :             : !!  results_out(0:ndtset_alloc)=<type results_out_type>contains the results
    1786                 :             : !!   needed for outvars, including occ, an evolving variable
    1787                 :             : !!
    1788                 :             : !! OUTPUT
    1789                 :             : !!  (only writing)
    1790                 :             : !!
    1791                 :             : !! SOURCE
    1792                 :             : 
    1793                 :        4584 : subroutine prtocc(dtsets,iout,jdtset_,mxvals,ndtset_alloc,nimagem,prtvol_glob,results_out,strimg)
    1794                 :             : 
    1795                 :             : !Arguments ------------------------------------
    1796                 :             : !scalars
    1797                 :             :  integer,intent(in) :: iout,ndtset_alloc,prtvol_glob
    1798                 :             : !arrays
    1799                 :             :  integer,intent(in) :: jdtset_(0:ndtset_alloc)
    1800                 :             :  integer,intent(in) :: nimagem(0:ndtset_alloc)
    1801                 :             :  type(ab_dimensions),intent(in) :: mxvals
    1802                 :             :  type(dataset_type),intent(in) :: dtsets(0:ndtset_alloc)
    1803                 :             :  type(results_out_type),intent(in) :: results_out(0:ndtset_alloc)
    1804                 :             :  character(len=8),intent(in) :: strimg(mxvals%nimage)
    1805                 :             : 
    1806                 :             : !Local variables-------------------------------
    1807                 :             :  character(len=*), parameter :: f_occ    ="(1x,a16,1x,(t22,6f10.6))"
    1808                 :             :  character(len=*), parameter :: f_occa   ="(1x,a16,a,1x,(t22,6f10.6))"
    1809                 :             :  character(len=*), parameter :: token='occ'
    1810                 :             : !scalars
    1811                 :             :  integer,parameter :: nkpt_max=50
    1812                 :             :  integer :: generic,iban,idtset,ikpsp,ikpt,isppol,jdtset,multi,multi_nband
    1813                 :             :  integer :: multi_nimage
    1814                 :             :  integer :: multi_nkpt,multi_nsppol,multi_occopt,nban,nkpt,nkpt_eff
    1815                 :             :  integer :: multi_tsmear
    1816                 :             :  integer :: print,tnkpt
    1817                 :        4584 :  logical, allocatable :: test_multiimages(:)
    1818                 :             :  character(len=4) :: append
    1819                 :             :  character(len=16) :: keywd
    1820                 :             :  character(len=500) :: message
    1821                 :             : ! *************************************************************************
    1822                 :             : 
    1823         [ -  + ]:        4584 :  if(ndtset_alloc<1)then
    1824                 :           0 :    write(message, '(a,i0,a)' )' ndtset_alloc=',ndtset_alloc,', while it should be >= 1.'
    1825                 :           0 :    ABI_BUG(message)
    1826                 :             :  end if
    1827                 :             : 
    1828         [ -  + ]:        4584 :  if(ndtset_alloc>9999)then
    1829                 :           0 :    write(message, '(a,i0,a)' )' ndtset_alloc=',ndtset_alloc,', while it must be lower than 100.'
    1830                 :           0 :    ABI_BUG(message)
    1831                 :             :  end if
    1832                 :             : 
    1833                 :             : !It is important to take iscf into account, since when it is -2, occupation numbers must be ignored
    1834                 :             : 
    1835                 :        4584 :  multi_occopt=0
    1836         [ +  + ]:        4584 :  if(ndtset_alloc>1)then
    1837         [ +  + ]:       22754 :    do idtset=1,ndtset_alloc
    1838   [ +  +  +  + ]:       42064 :      if(dtsets(1)%occopt/=dtsets(idtset)%occopt .and. dtsets(idtset)%iscf/=-2 )multi_occopt=1
    1839                 :             :    end do
    1840                 :             :  end if
    1841                 :             : 
    1842                 :        4584 :  multi_tsmear=0
    1843                 :             :  if(ndtset_alloc>1)then
    1844                 :             :    do idtset=1,ndtset_alloc
    1845                 :             :      if(dtsets(1)%tsmear/=dtsets(idtset)%tsmear .and. dtsets(idtset)%iscf/=-2 )multi_tsmear=1
    1846                 :             :    end do
    1847                 :             :  end if
    1848                 :             : 
    1849                 :        4584 :  multi_nkpt=0
    1850         [ +  + ]:        4584 :  if(ndtset_alloc>1)then
    1851         [ +  + ]:       22754 :    do idtset=1,ndtset_alloc
    1852   [ +  +  +  + ]:       39744 :      if(dtsets(1)%nkpt/=dtsets(idtset)%nkpt .and. dtsets(idtset)%iscf/=-2 )multi_nkpt=1
    1853                 :             :    end do
    1854                 :             :  end if
    1855         [ +  + ]:        4584 :  if(multi_nkpt==0)nkpt=dtsets(1)%nkpt
    1856                 :             : 
    1857                 :        4584 :  multi_nsppol=0
    1858         [ +  + ]:        4584 :  if(ndtset_alloc>1)then
    1859         [ +  + ]:       22754 :    do idtset=1,ndtset_alloc
    1860   [ +  +  -  + ]:       42112 :      if(dtsets(1)%nsppol/=dtsets(idtset)%nsppol .and. dtsets(idtset)%iscf/=-2 )multi_nsppol=1
    1861                 :             :    end do
    1862                 :             :  end if
    1863                 :             : 
    1864         [ +  + ]:        4584 :  if(multi_nsppol==0 .and. multi_nkpt==0)then
    1865                 :        3584 :    multi_nband=0
    1866         [ +  + ]:        3584 :    if(ndtset_alloc>1)then
    1867         [ +  + ]:       16762 :      do idtset=1,ndtset_alloc
    1868         [ +  + ]:       16762 :        if(dtsets(idtset)%iscf/=-2)then
    1869         [ +  + ]:      102360 :          do ikpsp=1,dtsets(1)%nkpt*dtsets(1)%nsppol
    1870         [ +  + ]:      102360 :            if(dtsets(1)%nband(ikpsp)/=dtsets(idtset)%nband(ikpsp))multi_nband=1
    1871                 :             :          end do
    1872                 :             :        end if
    1873                 :             :      end do
    1874                 :             :    end if
    1875                 :             :  else
    1876                 :             :    multi_nband=1
    1877                 :             :  end if
    1878                 :             : 
    1879                 :        4584 :  multi_nimage=0
    1880         [ +  + ]:        4584 :  if(ndtset_alloc>1)then
    1881         [ +  + ]:       22754 :    do idtset=1,ndtset_alloc
    1882   [ +  +  -  + ]:       42384 :      if(dtsets(1)%nimage/=dtsets(idtset)%nimage .and. dtsets(idtset)%iscf/=-2 )multi_nimage=1
    1883                 :             :    end do
    1884                 :             :  end if
    1885                 :             : 
    1886                 :             : !DEBUG
    1887                 :             : ! write(std_out,*)' prtocc : 2, multi_nimage= ',multi_nimage
    1888                 :             : !ENDDEBUG
    1889                 :             : 
    1890                 :             : !Test whether for this variable, the content of different images differ.
    1891                 :             : !test_multiimages(idtset)=.false. if, for that dataset, the content for different
    1892                 :             : !images is identical.
    1893   [ -  +  +  -  :       13752 :  ABI_MALLOC(test_multiimages,(0:ndtset_alloc))
          +  -  +  -  -  
                +  -  + ]
    1894         [ +  + ]:       30298 :  test_multiimages=.false.
    1895         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc
    1896         [ +  + ]:       25714 :    if(nimagem(idtset)>1)then
    1897         [ +  + ]:        1860 :      nban=sum(dtsets(idtset)%nband(1:dtsets(idtset)%nsppol*dtsets(idtset)%nkpt))
    1898         [ +  + ]:        2848 :      do iban=1,nban
    1899   [ +  +  +  + ]:       15260 :        if(sum(abs( results_out(idtset)%occ(iban,2:nimagem(idtset))- results_out(idtset)%occ(iban,1)))>tol12)then
    1900                 :         112 :          test_multiimages(idtset)=.true.
    1901                 :             :        end if
    1902                 :             :      end do
    1903                 :             :    end if
    1904                 :             :  end do
    1905         [ -  + ]:        4584 :  if(nimagem(0)==0)test_multiimages(0)=.true.
    1906                 :             : 
    1907                 :             : !DEBUG
    1908                 :             : ! write(std_out,*)' prtocc : 3, test_multiimages= ',test_multiimages
    1909                 :             : ! write(std_out,*)' prtocc : multi_occopt, multi_nband, multi_nimage=',multi_occopt, multi_nband, multi_nimage
    1910                 :             : ! write(std_out,*)' prtocc : test_multiimages(1:ndtset_alloc)=',test_multiimages(1:ndtset_alloc)
    1911                 :             : ! write(std_out,*)' prtocc : any(test_multiimages(1:ndtset_alloc))=',any(test_multiimages(1:ndtset_alloc))
    1912                 :             : !ENDDEBUG
    1913                 :             : 
    1914                 :             : !There is a possibility of a single generic occupation-number set (common to all datasets) if
    1915                 :             : !multi_occopt==0 and multi_nband==0  and (multi_nimage==0  or the content of the different images is always the same)
    1916                 :             : !This might occur even if occupation numbers differ for different images.
    1917                 :        4584 :  multi=1
    1918   [ +  +  +  +  :       25686 :  if(multi_occopt==0 .and. multi_nband==0 .and. (multi_nimage==0 .or. .not. any(test_multiimages(1:ndtset_alloc)))) then
             +  +  +  + ]
    1919         [ +  + ]:       56394 :    nban=sum(dtsets(1)%nband(1:dtsets(1)%nsppol*dtsets(1)%nkpt))
    1920                 :        3176 :    multi=0
    1921         [ +  + ]:        3176 :    if(ndtset_alloc>1)then
    1922         [ +  + ]:       12476 :      do idtset=1,ndtset_alloc
    1923         [ +  + ]:       12476 :        if(dtsets(idtset)%iscf/=-2)then
    1924                 :             : !        nban counts all bands and kpoints and spins: see above
    1925         [ +  + ]:       19984 :          do iimage=1,nimagem(idtset)
    1926   [ +  +  -  + ]:       19984 :            if(iimage==1 .or. test_multiimages(idtset))then
    1927         [ +  + ]:      753632 :              do iban=1,nban
    1928                 :             : !              Use of tol8, because the format for multi=1 is f16.6, so will not
    1929                 :             : !              discriminate between relative values, or absolute values that
    1930                 :             : !              agree within more than 6 digits
    1931         [ +  + ]:      754152 :                if( abs(results_out(1)%occ(iban,iimage)-results_out(idtset)%occ(iban,iimage)) > tol8) multi=1
    1932                 :             :              end do
    1933                 :             :            end if
    1934                 :             :          end do
    1935                 :             :        end if
    1936                 :             :      end do
    1937                 :             :    end if
    1938                 :             :  end if
    1939                 :             : 
    1940                 :             : ! write(std_out,*)' prtocc : 4, multi= ',multi
    1941                 :             : 
    1942                 :             : !At this stage, if multi==1, the occ must be printed
    1943                 :             : !if multi==0, then it might be that we have the default values.
    1944                 :             : !Since the default is all zeros, it only happens when iscf=-2
    1945                 :             : !Also initialize the number of a idtset that can be used as generic
    1946                 :             : !(this might not be the case for idtset=1 !)
    1947                 :             : 
    1948                 :        4584 :  generic=0
    1949                 :        4584 :  print=0
    1950         [ +  + ]:       25714 :  do idtset=1,ndtset_alloc
    1951         [ +  + ]:       25714 :    if(dtsets(idtset)%iscf/=-2)then
    1952                 :       19374 :      print=1
    1953                 :       19374 :      generic=idtset
    1954                 :             :    end if
    1955                 :             :  end do
    1956                 :             : 
    1957                 :             : ! write(std_out,*)' prtocc : 5, print= ',print
    1958                 :             : 
    1959                 :             : !Now, print occ in the generic occupation-number set case (occ is independent of the dtset).
    1960         [ +  + ]:        4584 :  if(print==1 .and. multi==0)then
    1961                 :             : !  Might restrict the number of k points to be printed
    1962                 :        2950 :    tnkpt=0
    1963                 :        2950 :    nkpt_eff=dtsets(1)%nkpt
    1964   [ +  +  +  + ]:        2950 :    if(prtvol_glob==0 .and. nkpt_eff>nkpt_max)then
    1965                 :        2950 :      nkpt_eff=nkpt_max
    1966                 :        2950 :      tnkpt=1
    1967                 :             :    end if
    1968                 :             : 
    1969                 :             : ! write(std_out,*)' prtocc : 6, do-loop over iimage '
    1970                 :             : 
    1971         [ +  + ]:        6280 :    do iimage=1,nimagem(generic)
    1972   [ +  +  +  + ]:        6280 :      if(iimage==1 .or. test_multiimages(generic) )then
    1973                 :        2984 :        keywd=token//trim(strimg(iimage))
    1974                 :             : !      The quantity of data to be output vary with occopt
    1975         [ +  + ]:        2984 :        if(dtsets(generic)%occopt>=2)then
    1976                 :        1040 :          iban=1
    1977         [ +  + ]:        2382 :          do isppol=1,dtsets(generic)%nsppol
    1978         [ +  + ]:       20594 :            do ikpt=1,nkpt_eff
    1979                 :       19252 :              ikpsp=ikpt+dtsets(generic)%nkpt*(isppol-1)
    1980                 :       19252 :              nban=dtsets(generic)%nband(ikpsp)
    1981         [ +  + ]:       19252 :              if(ikpsp==1)then
    1982                 :             :                write(iout, '(1x,a16,1x,(t22,6f10.6))' )&
    1983         [ +  + ]:       18340 : &               trim(keywd),results_out(generic)%occ(iban:iban+nban-1,iimage)
    1984                 :             :              else
    1985         [ +  + ]:      179566 :                write(iout, '((t22,6f10.6))' )results_out(generic)%occ(iban:iban+nban-1,iimage)
    1986                 :             :              end if
    1987                 :       20594 :              iban=iban+nban
    1988                 :             :            end do
    1989         [ +  + ]:        2382 :            if(tnkpt==1) write(iout,'(23x,a)' ) 'prtocc : prtvol=0, do not print more k-points.'
    1990                 :             :          end do
    1991                 :             :        else
    1992                 :             : !        The number of bands is identical for all k points and spin
    1993                 :        1944 :          nban=dtsets(generic)%nband(1)
    1994         [ +  + ]:       25646 :          write(iout, '(1x,a16,1x,(t22,6f10.6))' )trim(keywd),results_out(generic)%occ(1:nban,iimage)
    1995                 :             : !        if occopt==1, the occ might differ with the spin
    1996         [ +  + ]:        1944 :          if(dtsets(generic)%nsppol/=1)then
    1997                 :             :            write(iout,'((t22,6f10.6))')results_out(generic)%occ(nban*dtsets(generic)%nkpt+1:&
    1998         [ +  + ]:        1308 : &           nban*dtsets(generic)%nkpt+nban,iimage)
    1999                 :             :          end if
    2000                 :             :        end if
    2001                 :             :      end if
    2002                 :             :    end do
    2003                 :             :  end if
    2004                 :             : 
    2005                 :             : ! write(std_out,*)' prtocc : 7, finished do-loop over iimage '
    2006                 :             : 
    2007                 :             : !Now, print occ in the other cases (occ depends on the dataset)
    2008         [ +  + ]:        4584 :  if(print==1 .and. multi==1)then
    2009         [ +  + ]:       11182 :    do idtset=1,ndtset_alloc
    2010                 :             : !    Might restrict the number of k points to be printed
    2011                 :        9600 :      tnkpt=0
    2012                 :        9600 :      nkpt_eff=dtsets(idtset)%nkpt
    2013   [ +  +  +  + ]:        9600 :      if(prtvol_glob==0 .and. nkpt_eff>nkpt_max)then
    2014                 :        9600 :        nkpt_eff=nkpt_max
    2015                 :        9600 :        tnkpt=1
    2016                 :             :      end if
    2017         [ +  + ]:       11182 :      if(dtsets(idtset)%iscf/=-2)then
    2018                 :        8916 :        jdtset=jdtset_(idtset)
    2019                 :        8916 :        call appdig(jdtset,'',append)
    2020         [ +  + ]:       17848 :        do iimage=1,nimagem(idtset)
    2021   [ +  +  +  - ]:       17848 :          if(iimage==1 .or. test_multiimages(idtset) )then
    2022                 :        8932 :            keywd=trim(token)//trim(strimg(iimage))
    2023                 :             : !          The quantity of data to be output vary with occopt
    2024         [ +  + ]:        8932 :            if(dtsets(idtset)%occopt>=2)then
    2025                 :        3514 :              iban=1
    2026         [ +  + ]:        8586 :              do isppol=1,dtsets(idtset)%nsppol
    2027         [ +  + ]:       37012 :                do ikpt=1,nkpt_eff
    2028                 :       31940 :                  ikpsp=ikpt+dtsets(idtset)%nkpt*(isppol-1)
    2029                 :       31940 :                  nban=dtsets(idtset)%nband(ikpsp)
    2030         [ +  + ]:       31940 :                  if(ikpsp==1)then
    2031                 :             :                    write(iout, '(1x,a16,a,1x,(t22,6f10.6))' )&
    2032         [ +  + ]:       53054 : &                   trim(keywd),append,results_out(idtset)%occ(iban:iban+nban-1,iimage)
    2033                 :             :                  else
    2034         [ +  + ]:      317920 :                    write(iout, '((t22,6f10.6))' )results_out(idtset)%occ(iban:iban+nban-1,iimage)
    2035                 :             :                  end if
    2036                 :       37012 :                  iban=iban+nban
    2037                 :             :                end do
    2038         [ +  + ]:        8586 :                if(tnkpt==1) write(iout,'(23x,a)' ) 'prtocc : prtvol=0, do not print more k-points.'
    2039                 :             :              end do
    2040                 :             :            else
    2041                 :             : !            The number of bands is identical for all k points and spin
    2042                 :        5418 :              nban=dtsets(idtset)%nband(1)
    2043                 :             :              write(iout, '(1x,a16,a,1x,(t22,6f10.6))' )&
    2044         [ +  + ]:       73262 : &             trim(keywd),append,results_out(idtset)%occ(1:nban,iimage)
    2045                 :             : !            if occopt==1, the occ might differ with the spin
    2046         [ +  + ]:        5418 :              if(dtsets(idtset)%nsppol/=1)then
    2047                 :             :                write(iout, '((t22,6f10.6))' ) &
    2048         [ +  + ]:        3980 : &               results_out(idtset)%occ(nban*dtsets(idtset)%nkpt+1:nban*dtsets(idtset)%nkpt+nban,iimage)
    2049                 :             :              end if
    2050                 :             :            end if
    2051                 :             :          end if
    2052                 :             :        enddo
    2053                 :             :      end if
    2054                 :             : !    Endloop on idtset
    2055                 :             :    end do
    2056                 :             :  end if
    2057                 :             : 
    2058         [ -  + ]:        4584 :  ABI_FREE(test_multiimages)
    2059                 :             : 
    2060                 :        4584 : end subroutine prtocc
    2061                 :             : !!***
    2062                 :             : 
    2063                 :             : end subroutine outvar_o_z
    2064                 :             : !!***
    2065                 :             : 
    2066                 :             : end module m_outvar_o_z
    2067                 :             : !!***
        

Generated by: LCOV version 2.3-1