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 % 1109 1086
Test Date: 2026-11-06 12:58:16 Functions: 100.0 % 2 2
Branches: 88.5 % 1598 1415

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

Generated by: LCOV version 2.3-1