LCOV - code coverage report
Current view: top level - src/57_iovars - m_outvar_a_h.F90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 97.3 % 1025 997
Test Date: 2026-09-21 19:39:32 Functions: 100.0 % 1 1

            Line data    Source code
       1              : !!****m* ABINIT/m_outvar_a_h
       2              : !! NAME
       3              : !!  m_outvar_a_h
       4              : !!
       5              : !! FUNCTION
       6              : !!
       7              : !! COPYRIGHT
       8              : !!  Copyright (C) 1998-2026 ABINIT group (DCA, XG, GMR, MM)
       9              : !!  This file is distributed under the terms of the
      10              : !!  GNU General Public License, see ~abinit/COPYING
      11              : !!  or http://www.gnu.org/copyleft/gpl.txt .
      12              : !!
      13              : !! SOURCE
      14              : 
      15              : #if defined HAVE_CONFIG_H
      16              : #include "config.h"
      17              : #endif
      18              : 
      19              : #include "abi_common.h"
      20              : 
      21              : module m_outvar_a_h
      22              : 
      23              :  use defs_basis
      24              :  use m_abicore
      25              :  use m_results_out
      26              :  use m_dtset
      27              : 
      28              :  use m_parser,  only : prttagm, prttagm_images, ab_dimensions
      29              : 
      30              :  implicit none
      31              : 
      32              :  private
      33              : !!***
      34              : 
      35              :  public :: outvar_a_h
      36              : !!***
      37              : 
      38              : contains
      39              : !!***
      40              : 
      41              : !!****f* ABINIT/outvar_a_h
      42              : !! NAME
      43              : !! outvar_a_h
      44              : !!
      45              : !! FUNCTION
      46              : !! Echo variables between acell and gw_ ... (by alphabetic order) for the ABINIT code.
      47              : !!
      48              : !! INPUTS
      49              : !!  choice= 1 if echo of preprocessed variables, 2 if echo after call driver
      50              : !!  dmatpuflag=flag controlling the use of an initial density matrix in PAW+U (max. value over datasets)
      51              : !!  dtsets(0:ndtset_alloc)=<type datafiles_type>contains all input variables
      52              : !!  iout=unit number for echoed output
      53              : !!  jdtset_(0:ndtset_alloc)=actual index of the dataset (equal to dtsets(:)%jdtset)
      54              : !!  marr=maximum number of numbers in an array (might need to be increased ... !)
      55              : !!  multivals= <type ab_dimensions>  either 0 or 1 , depending whether the
      56              : !!     dimension has different values for different datasets
      57              : !!  mxvals= <type ab_dimensions>
      58              : !!     maximum size of some arrays along all datasets, including
      59              : !!         lpawu      =maximal value of input lpawu for all the datasets
      60              : !!         gw_nqlwl   =maximal value of input gw_nqlwl for all the datasets
      61              : !!         mband      =maximum number of bands
      62              : !!         natom      =maximal value of input natom for all the datasets
      63              : !!         natpawu    =maximal value of number of atoms on which +U is applied for all the datasets
      64              : !!         natvshift  =maximal value of input natvshift for all the datasets
      65              : !!         nconeq     =maximal value of input nconeq for all the datasets
      66              : !!         nimage     =maximal value of input nimage for all the datasets
      67              : !!         nkpt       =maximal value of input nkpt for all the datasets
      68              : !!         nkptgw     =maximal value of input nkptgw for all the datasets
      69              : !!         nnos       =maximal value of input nnos for all the datasets
      70              : !!         nqptdm     =maximal value of input nqptdm for all the datasets
      71              : !!         nspinor    =maximal value of input nspinor for all the datasets
      72              : !!         nsppol     =maximal value of input nsppol for all the datasets
      73              : !!         nsym       =maximum number of symmetries
      74              : !!         ntypat     =maximum number of type of atoms
      75              : !!         nzchempot  =maximal value of input nzchempot for all the datasets
      76              : !!  ncid= NetCDF handler
      77              : !!  ndtset=number of datasets
      78              : !!  ndtset_alloc=number of datasets, corrected for allocation of at least
      79              : !!      one data set. Use for most dimensioned arrays.
      80              : !!   for different datasets
      81              : !!  results_out(0:ndtset_alloc)=<type results_out_type>contains the results
      82              : !!   needed for outvars, including evolving variables
      83              : !!
      84              : !! OUTPUT
      85              : !!
      86              : !! NOTES
      87              : !! Note that this routine is called only by the processor me==0 .
      88              : !! In consequence, no use of message and wrtout routine.
      89              : !! The lines of code needed to output the defaults are preserved
      90              : !! (see last section of the routine, but are presently disabled)
      91              : !!
      92              : !!  Note that acell, occ, rprim, xred and vel might have been modified by the
      93              : !!  computation, so that their values if choice=1 or choice=2 will differ.
      94              : !!
      95              : !! SOURCE
      96              : 
      97         4524 : subroutine outvar_a_h(choice,dmatpuflag,dtsets,iout,&
      98         4524 :    jdtset_,marr,multivals,mxvals,ncid,ndtset,ndtset_alloc,&
      99         4524 :    results_out,strimg)
     100              : 
     101              : !Arguments ------------------------------------
     102              : !scalars
     103              :  integer,intent(in) :: choice,dmatpuflag,iout,marr,ndtset
     104              :  integer,intent(in) :: ndtset_alloc,ncid
     105              : !arrays
     106              :  integer,intent(in) :: jdtset_(0:ndtset_alloc)
     107              :  type(ab_dimensions),intent(in) :: multivals,mxvals
     108              :  type(dataset_type),intent(in) :: dtsets(0:ndtset_alloc)
     109              :  type(results_out_type),intent(in) :: results_out(0:ndtset_alloc)
     110              :  character(len=8),intent(in) :: strimg(mxvals%nimage)
     111              : 
     112              : !Local variables-------------------------------
     113              : !scalars
     114              :  integer,parameter :: nkpt_max=50
     115              :  integer :: defo,idtset,ii,iimage,ga_n_rules,nn
     116              :  integer :: lpawu1,narr,mxnsp
     117              :  integer :: natnd,natom,nimfrqs,nimage
     118              :  integer :: ntypalch,ntypat,print_constraint,size1,size2,test_write,tmpimg0
     119              :  logical :: compute_static_images
     120              :  logical :: nontrivial_spinaxis
     121              :  real(dp) :: cpus
     122              :  character(len=1) :: firstchar_fftalg,firstchar_gpu
     123              :  character(len=14) :: str_hyb
     124              : !arrays
     125         4524 :  integer,allocatable :: narrm(:)
     126         4524 :  integer,allocatable :: nimagem(:),prtimg(:,:)
     127         4524 :  integer,allocatable :: intarr(:,:)
     128         4524 :  real(dp),allocatable :: dprarr(:,:),dprarr_images(:,:,:)
     129              : 
     130              : ! *************************************************************************
     131              : 
     132              : !###########################################################
     133              : !### 01. Initial allocations and initialisations.
     134              : 
     135        18096 :  ABI_MALLOC(dprarr,(marr,0:ndtset_alloc))
     136        22620 :  ABI_MALLOC(dprarr_images,(marr,mxvals%nimage,0:ndtset_alloc))
     137        18096 :  ABI_MALLOC(intarr,(marr,0:ndtset_alloc))
     138        13572 :  ABI_MALLOC(narrm,(0:ndtset_alloc))
     139         9048 :  ABI_MALLOC(nimagem,(0:ndtset_alloc))
     140        18096 :  ABI_MALLOC(prtimg,(mxvals%nimage,0:ndtset_alloc))
     141              : 
     142        29986 :  do idtset=0,ndtset_alloc
     143        29986 :    nimagem(idtset)=dtsets(idtset)%nimage
     144              :  end do
     145              : 
     146         4524 :  firstchar_gpu=' '
     147        25462 :  if (maxval(dtsets(1:ndtset_alloc)%gpu_option)/=ABI_GPU_DISABLED) firstchar_gpu='-'
     148              : 
     149              : !if(multivals%ga_n_rules==0)ga_n_rules=dtsets(1)%ga_n_rules
     150         4524 :  ga_n_rules=dtsets(1)%ga_n_rules
     151              : !if(multivals%natom==0)natom=dtsets(1)%natom
     152         4524 :  natom=dtsets(1)%natom
     153              : !if(multivals%nimage==0)nimage=dtsets(1)%nimage
     154         4524 :  nimage=dtsets(1)%nimage
     155              : 
     156         4524 :  natnd=dtsets(1)%natnd
     157              : 
     158         4524 :  nimfrqs=dtsets(1)%cd_customnimfrqs
     159              : !if(multivals%ntypalch==0)ntypalch=dtsets(1)%ntypalch
     160         4524 :  ntypalch=dtsets(1)%ntypalch
     161              : !if(multivals%ntypat==0)ntypat=dtsets(1)%ntypat
     162         4524 :  ntypat=dtsets(1)%ntypat
     163              : 
     164              : !###########################################################
     165              : !### 03. Print all the input variables (A)
     166              : !##
     167              : 
     168        29986 :  intarr(1,:)=dtsets(:)%iomode
     169         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'iomode','INT',0,firstchar="-")
     170              : 
     171        29986 :  intarr(1,:)=dtsets(:)%accuracy
     172         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'accuracy','INT',0)
     173              : 
     174              : !acell
     175        56668 :  prtimg(:,:)=1
     176        29986 :  do idtset=0,ndtset_alloc
     177        25462 :    narrm(idtset)=3
     178        56200 :    do iimage=1,nimagem(idtset)
     179        25462 :      if (narrm(idtset)>0) then
     180       104856 :        dprarr_images(1:narrm(idtset),iimage,idtset)=results_out(idtset)%acell(1:3,iimage)
     181              :      end if
     182              :    end do
     183              :  end do
     184              :  call prttagm_images(dprarr_images,iout,jdtset_,2,marr,narrm,ncid,ndtset_alloc,'acell','LEN',&
     185         4524 :    mxvals%nimage,nimagem,ndtset,prtimg,strimg)
     186              : 
     187              : 
     188              : !adpimd and adpimd_gamma
     189        29986 :  intarr(1,:)=dtsets(:)%adpimd
     190         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'adpimd','INT',0)
     191              : 
     192        29986 :  dprarr(1,:)=dtsets(:)%adpimd_gamma
     193         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'adpimd_gamma','DPR',0)
     194              : 
     195              : !algalch
     196         4524 :  narr=ntypalch                      ! default size for all datasets
     197        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     198        25462 :    narrm(idtset)=dtsets(idtset)%ntypalch
     199        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
     200        36182 :    intarr(1:narrm(idtset),idtset)=dtsets(idtset)%algalch(1:narrm(idtset))
     201              :  end do
     202              :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
     203         4524 :    narrm,ncid,ndtset_alloc,'algalch','INT',multivals%ntypalch)
     204              : 
     205              : !amu
     206        56668 :  prtimg(:,:)=1
     207        29986 :  do idtset=0,ndtset_alloc
     208        25462 :    if(idtset/=0)then
     209        20938 :      size1=dtsets(idtset)%ntypat
     210              :    else
     211         4524 :      size1=mxvals%ntypat
     212              :    end if
     213        25462 :    narrm(idtset)=size1
     214        56200 :    do iimage=1,nimagem(idtset)
     215        51676 :      if (narrm(idtset)>0) then
     216        59684 :        dprarr_images(1:narrm(idtset),iimage,idtset)=results_out(idtset)%amu(1:size1,iimage)
     217              :      end if
     218              :    end do
     219              :  end do
     220              :  call prttagm_images(dprarr_images,iout,jdtset_,1,marr,narrm,ncid,ndtset_alloc,'amu','DPR',&
     221         4524 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg,forceprint=2)
     222              : 
     223        29986 :  intarr(1,:)=dtsets(:)%asr
     224         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'asr','INT',0)
     225              : 
     226              : !atndlist
     227      4409052 :  dprarr(:,0)=0.0_dp
     228         4524 :  narr=3*natnd ! default size for all datasets
     229        25462 :  do idtset=1,ndtset_alloc       ! specific size for each dataset
     230        20938 :    narrm(idtset)=3*dtsets(idtset)%natnd
     231        20938 :    if (narrm(idtset)>0) then
     232          112 :      dprarr(1:narrm(idtset),idtset)= reshape(dtsets(idtset)%atndlist(1:3,1:dtsets(idtset)%natnd), [narrm(idtset)])
     233              :    end if
     234        25750 :    if(sum(abs( dtsets(idtset)%atndlist(1:3,1:dtsets(idtset)%natnd))) < tol12 ) narrm(idtset)=0
     235              :  end do
     236         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'atndlist','DPR',multivals%natom)
     237              : 
     238              : 
     239              : !atvshift
     240         4524 :  if(mxvals%natpawu>0)then
     241          180 :    narr=dtsets(1)%natvshift*dtsets(1)%nsppol*mxvals%natom ! default size for all datasets
     242          828 :    do idtset=0,ndtset_alloc       ! specific size for each dataset
     243          828 :      if(idtset/=0)then
     244          468 :        narrm(idtset)=dtsets(idtset)%natvshift*dtsets(idtset)%nsppol*mxvals%natom
     245          468 :        if(narrm(idtset)/=0)&
     246              : &       dprarr(1:narrm(idtset),idtset)=&
     247              : &       reshape(dtsets(idtset)%atvshift(1:dtsets(idtset)%natvshift,&
     248              : &       1:dtsets(idtset)%nsppol,1:mxvals%natom),&
     249          120 : &       (/ narrm(idtset) /) )
     250              :      else
     251          180 :        narrm(idtset)=mxvals%natvshift*mxvals%nsppol*mxvals%natom
     252          180 :        if(narrm(idtset)/=0)&
     253              : &       dprarr(1:narrm(idtset),idtset)=&
     254              : &       reshape(dtsets(idtset)%atvshift(1:mxvals%natvshift,&
     255              : &       1:mxvals%nsppol,1:mxvals%natom),&
     256           40 : &       (/ narrm(idtset) /) )
     257              :      end if
     258              :    end do
     259              :    call prttagm(dprarr,intarr,iout,jdtset_,5,marr,narr,&
     260              : &   narrm,ncid,ndtset_alloc,'atvshift','DPR',&
     261          180 : &   multivals%natvshift+multivals%nsppol+multivals%natom)
     262              :  end if
     263              : 
     264        29986 :  intarr(1,:)=dtsets(:)%autoparal
     265         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'autoparal','INT',0)
     266              : 
     267        29986 :  intarr(1,:)=dtsets(:)%auxc_ixc
     268         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'auxc_ixc','INT',0)
     269              : 
     270        29986 :  dprarr(1,:)=dtsets(:)%auxc_scal
     271         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'auxc_scal','DPR',0)
     272              : 
     273        29986 :  intarr(1,:)=dtsets(:)%awtr
     274         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'awtr','INT',0)
     275              : 
     276              : !###########################################################
     277              : !### 03. Print all the input variables (B)
     278              : !##
     279              : 
     280        29986 :  intarr(1,:)=dtsets(:)%bandpp
     281         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bandpp','INT',0)
     282              : 
     283        29986 :  intarr(1,:)=dtsets(:)%bdberry(1)
     284        29986 :  intarr(2,:)=dtsets(:)%bdberry(2)
     285        29986 :  intarr(3,:)=dtsets(:)%bdberry(3)
     286        29986 :  intarr(4,:)=dtsets(:)%bdberry(4)
     287         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,4,narrm,ncid,ndtset_alloc,'bdberry','INT',0)
     288              : 
     289        29986 :  intarr(1,:)=dtsets(:)%bdeigrf
     290         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bdeigrf','INT',0)
     291              : 
     292              : !bdgw
     293         4524 :  narr=2*dtsets(1)%nkptgw*dtsets(1)%nsppol ! default size for all datasets
     294        29986 :  do idtset=0,ndtset_alloc        ! specific size for each dataset
     295        29986 :    if(idtset/=0)then
     296        20938 :      narrm(idtset)=2*dtsets(idtset)%nkptgw*dtsets(idtset)%nsppol
     297        20938 :      if (narrm(idtset)>0)&
     298              : &     intarr(1:narrm(idtset),idtset)=&
     299         1952 : &     reshape(dtsets(idtset)%bdgw(1:2,1:dtsets(idtset)%nkptgw,1:dtsets(idtset)%nsppol),(/narrm(idtset)/))
     300              :    else
     301         4524 :      narrm(idtset)=2*mxvals%nkptgw*mxvals%nsppol
     302         4524 :      if (narrm(idtset)>0)&
     303              : &     intarr(1:narrm(idtset),idtset)=&
     304          632 : &     reshape(dtsets(idtset)%bdgw(1:2,1:mxvals%nkptgw,1:mxvals%nsppol),(/ narrm(idtset) /) )
     305              :    end if
     306              :  end do
     307              :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,&
     308         4524 : & narrm,ncid,ndtset_alloc,'bdgw','INT',multivals%nkptgw+multivals%nsppol)
     309              : 
     310        29986 :  intarr(1,:)=dtsets(:)%berryopt
     311         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'berryopt','INT',0)
     312              : 
     313        29986 :  intarr(1,:)=dtsets(:)%berrysav
     314         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'berrysav','INT',0)
     315              : 
     316        29986 :  intarr(1,:)=dtsets(:)%berrystep
     317         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'berrystep','INT',0)
     318              : 
     319        29986 :  dprarr(1,:)=dtsets(:)%bfield(1)
     320        29986 :  dprarr(2,:)=dtsets(:)%bfield(2)
     321        29986 :  dprarr(3,:)=dtsets(:)%bfield(3)
     322         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'bfield','DPR',0)
     323              : 
     324        29986 :  dprarr(1,:)=dtsets(:)%bmass
     325         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'bmass','DPR',0)
     326              : 
     327        29986 :  dprarr(1,:)=dtsets(:)%boxcenter(1)
     328        29986 :  dprarr(2,:)=dtsets(:)%boxcenter(2)
     329        29986 :  dprarr(3,:)=dtsets(:)%boxcenter(3)
     330         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'boxcenter','DPR',0)
     331              : 
     332        29986 :  dprarr(1,:)=dtsets(:)%boxcutmin
     333         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'boxcutmin','DPR',0)
     334              : 
     335        29986 :  intarr(1,:)=dtsets(:)%brav
     336         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'brav','INT',0)
     337              : 
     338        29986 :  intarr(1,:)=dtsets(:)%bs_algorithm
     339         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_algorithm','INT',0)
     340              : 
     341        29986 :  intarr(1,:)=dtsets(:)%bs_calctype
     342         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_calctype','INT',0)
     343              : 
     344        29986 :  intarr(1,:)=dtsets(:)%bs_coulomb_term
     345         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_coulomb_term','INT',0)
     346              : 
     347        29986 :  intarr(1,:)=dtsets(:)%bs_coupling
     348         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_coupling','INT',0)
     349              : 
     350        29986 :  do idtset=0,ndtset_alloc
     351        80910 :    dprarr(1:2,idtset)=dtsets(idtset)%bs_eh_cutoff(1:2)
     352              :  end do
     353         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'bs_eh_cutoff','ENE',0)
     354              : 
     355        29986 :  intarr(1,:)=dtsets(:)%bs_exchange_term
     356         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_exchange_term','INT',0)
     357              : 
     358        29986 :  do idtset=0,ndtset_alloc
     359       106372 :    dprarr(1:3,idtset)=dtsets(idtset)%bs_freq_mesh(1:3)
     360              :  end do
     361         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'bs_freq_mesh','ENE',0)
     362              : 
     363        29986 :  intarr(1,:)=dtsets(:)%bs_haydock_niter
     364         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_haydock_niter','INT',0)
     365              : 
     366        29986 :  do idtset=0,ndtset_alloc
     367        80910 :    dprarr(1:2,idtset)=dtsets(idtset)%bs_haydock_tol(:)
     368              :  end do
     369         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'bs_haydock_tol','DPR',0)
     370              : 
     371        29986 :  intarr(1,:)=dtsets(:)%bs_hayd_term
     372         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_hayd_term','INT',0)
     373              : 
     374        29986 :  do idtset=0,ndtset_alloc
     375       106372 :    intarr(1:3,idtset)=dtsets(idtset)%bs_interp_kmult(1:3)
     376              :  end do
     377         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'bs_interp_kmult','INT',0)
     378              : 
     379        29986 :  intarr(1,:)=dtsets(:)%bs_interp_method
     380         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_interp_method','INT',0)
     381              : 
     382        29986 :  intarr(1,:)=dtsets(:)%bs_interp_mode
     383         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_interp_mode','INT',0)
     384              : 
     385        29986 :  intarr(1,:)=dtsets(:)%bs_interp_prep
     386         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_interp_prep','INT',0)
     387              : 
     388        29986 :  intarr(1,:)=dtsets(:)%bs_interp_rl_nb
     389         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_interp_rl_nb','INT',0)
     390              : 
     391              : !bs_loband
     392         4524 :  narr=dtsets(1)%nsppol ! default size for all datasets
     393     19931182 :  intarr = 0
     394        29986 :  do idtset=0,ndtset_alloc        ! specific size for each dataset
     395        25462 :    if(idtset/=0)then
     396        20938 :      narrm(idtset)=dtsets(idtset)%nsppol
     397              :    else
     398         4524 :      narrm(idtset)=mxvals%nsppol
     399              :    end if
     400        60492 :    intarr(1:narrm(idtset),idtset)=dtsets(idtset)%bs_loband(1:narrm(idtset))
     401              :  end do
     402              : 
     403         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'bs_loband','INT',multivals%nsppol)
     404              : 
     405        29986 :  intarr(1,:)=dtsets(:)%bs_nstates
     406         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'bs_nstates','INT',0)
     407              : 
     408        29986 :  intarr(1,:)=dtsets(:)%builtintest
     409         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'builtintest','INT',0)
     410              : 
     411        29986 :  dprarr(1,:)=dtsets(:)%bxctmindg
     412         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'bxctmindg','DPR',0)
     413              : 
     414              : !###########################################################
     415              : !### 03. Print all the input variables (C)
     416              : !##
     417              : 
     418        29982 :  if (ANY(dtsets(:)%cd_customnimfrqs/=0)) then
     419           20 :    intarr(1,:)=dtsets(:)%cd_customnimfrqs
     420            4 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cd_customnimfrqs','INT',0)
     421              :  end if
     422              : 
     423        29986 :  intarr(1,:)=dtsets(:)%cd_frqim_method
     424         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cd_frqim_method','INT',0)
     425              : 
     426        29986 :  intarr(1,:)=dtsets(:)%cd_full_grid
     427         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cd_full_grid','INT',0)
     428              : 
     429        29986 :  dprarr(1,:)=dtsets(:)%cd_halfway_freq
     430         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cd_halfway_freq','ENE',0)
     431              : 
     432              : !cd_imfrqs
     433         4524 :  narr=mxvals%nimfrqs            ! default size for all datasets
     434        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     435        25462 :    narrm(idtset)=dtsets(idtset)%cd_customnimfrqs
     436        25462 :    if(idtset==0)narrm(idtset)=mxvals%nimfrqs
     437        29986 :    if (narrm(idtset)>0) then
     438           40 :      dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%cd_imfrqs(1:narrm(idtset))
     439              :    end if
     440              :  end do
     441         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,6,marr,narr,narrm,ncid,ndtset_alloc,'cd_imfrqs','ENE',multivals%nimfrqs)
     442              : 
     443        29986 :  dprarr(1,:)=dtsets(:)%cd_max_freq
     444         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cd_max_freq','ENE',0)
     445              : 
     446        29986 :  if (ANY(dtsets(:)%cd_subset_freq(1)/=0)) then
     447            0 :    intarr(1,:)=dtsets(:)%cd_subset_freq(1)
     448            0 :    intarr(2,:)=dtsets(:)%cd_subset_freq(2)
     449            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'cd_subset_freq','INT',0)
     450              :  end if
     451              : 
     452              : !cellcharge
     453        56668 :  prtimg(:,:)=1
     454        29986 :  do idtset=0,ndtset_alloc
     455        25462 :    narrm(idtset)=1
     456        56200 :    do iimage=1,nimagem(idtset)
     457        25462 :      if (narrm(idtset)>0) then
     458        52428 :        dprarr_images(1:narrm(idtset),iimage,idtset)=dtsets(idtset)%cellcharge(iimage)
     459              :      end if
     460              :    end do
     461              :  end do
     462              :  call prttagm_images(dprarr_images,iout,jdtset_,1,marr,narrm,ncid,ndtset_alloc,'cellcharge','DPR',&
     463         4524 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg)
     464              : 
     465              : !chempot
     466         4524 :  narr=3*mxvals%nzchempot*mxvals%ntypat ! default size for all datasets
     467         4524 :  if(narr/=0)then
     468           72 :    do idtset=0,ndtset_alloc       ! specific size for each dataset
     469           72 :      if(idtset/=0)then
     470           56 :        narrm(idtset)=3*dtsets(idtset)%nzchempot*dtsets(idtset)%ntypat
     471           56 :        if(narrm(idtset)/=0)&
     472              : &       dprarr(1:narrm(idtset),idtset)=&
     473              : &       reshape(dtsets(idtset)%chempot(1:3,1:dtsets(idtset)%nzchempot,&
     474              : &       1:dtsets(idtset)%ntypat),&
     475           56 : &       (/ narrm(idtset) /) )
     476              :      else
     477            8 :        narrm(idtset)=3*mxvals%nzchempot*mxvals%ntypat
     478              :        if(narrm(idtset)/=0)&
     479              : &       dprarr(1:narrm(idtset),idtset)=&
     480           16 : &       reshape(dtsets(idtset)%chempot(1:3,1:mxvals%nzchempot,1:mxvals%ntypat),(/ narrm(idtset) /) )
     481              :      end if
     482              :    end do
     483            8 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'chempot','DPR',1)
     484              :  end if
     485              : 
     486        29986 :  intarr(1,:)=dtsets(:)%chkdilatmx
     487         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chkdilatmx','INT',0)
     488              : 
     489        29986 :  intarr(1,:)=dtsets(:)%chkexit
     490         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chkexit','INT',0)
     491              : 
     492        29986 :  intarr(1,:)=dtsets(:)%chkparal
     493         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chkparal','INT',0)
     494              : 
     495        29986 :  intarr(1,:)=dtsets(:)%chkprim
     496         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chkprim','INT',0)
     497              : 
     498        29986 :  intarr(1,:)=dtsets(:)%chksymbreak
     499         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chksymbreak','INT',0)
     500              : 
     501        29986 :  intarr(1,:)=dtsets(:)%chksymtnons
     502         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chksymtnons','INT',0)
     503              : 
     504        29986 :  intarr(1,:)=dtsets(:)%chneut
     505         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chneut','INT',0)
     506              : 
     507              : !chrgat
     508         4524 :  narr=mxvals%natom              ! default size for all datasets
     509        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     510        25462 :    narrm(idtset)=dtsets(idtset)%natom
     511        25462 :    if(idtset==0)narrm(idtset)=mxvals%natom
     512       136360 :    if (narrm(idtset)>0) dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%chrgat(1:narrm(idtset))
     513              :  end do
     514         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'chrgat','DPR',multivals%natom)
     515              : 
     516        29986 :  intarr(1,:)=dtsets(:)%cineb_start
     517         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cineb_start','INT',0)
     518              : 
     519         4524 :  if(dtsets(1)%cpus>one)then
     520            0 :    cpus=dtsets(1)%cpus
     521            0 :    write(iout,'(1x,a16,1x,1p,t22,g10.2,t25,a)') 'cpus',cpus,'(seconds)'
     522            0 :    write(iout,'(1x,a16,1x,1p,t22,g10.2,t25,a)') 'cpum',cpus/60.0_dp,'(minutes)'
     523            0 :    write(iout,'(1x,a16,1x,1p,t22,g10.2,t25,a)') 'cpuh',cpus/3600.0_dp,'(hours)'
     524              :  end if
     525              : 
     526              : !constraint_kind
     527         4524 :  narr=mxvals%ntypat             ! default size for all datasets
     528        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     529        25462 :    narrm(idtset)=dtsets(idtset)%ntypat
     530        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
     531        62144 :    if (narrm(idtset)>0) intarr(1:narrm(idtset),idtset)=dtsets(idtset)%constraint_kind(1:narrm(idtset))
     532              :  end do
     533         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'constraint_kind','INT',multivals%ntypat)
     534              : 
     535              : !corecs
     536              :  narr=mxvals%ntypat             ! default size for all datasets
     537        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     538        25462 :    narrm(idtset)=dtsets(idtset)%ntypat
     539        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
     540        62144 :    if (narrm(idtset)>0) dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%corecs(1:narrm(idtset))
     541              :  end do
     542         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'corecs','DPR',multivals%ntypat)
     543              : 
     544        29986 :  intarr(1,:)=dtsets(:)%chebfi_oracle
     545         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'chebfi_oracle','INT',0)
     546              : 
     547        29986 :  intarr(1,:)=dtsets(:)%cprj_in_memory
     548         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cprj_in_memory','INT',0)
     549              : 
     550        29986 :  intarr(1,:)=dtsets(:)%cprj_update_lvl
     551         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'cprj_update_lvl','INT',0)
     552              : 
     553        29986 :  intarr(1,:)=dtsets(:)%cwfs_wouth
     554         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'cwfs_wouth','INT',0)
     555              : 
     556              : 
     557              : !###########################################################
     558              : !### 03. Print all the input variables (D)
     559              : !##
     560              : 
     561        29986 :  dprarr(1,:)=dtsets(:)%ddamp
     562         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ddamp','DPR',0)
     563              : 
     564        29986 :  do idtset=0,ndtset_alloc
     565       106372 :    intarr(1:3,idtset)=dtsets(idtset)%ddb_ngqpt
     566              :  end do
     567         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'ddb_ngqpt','INT',0)
     568              : 
     569        29986 :  dprarr(1,:)=dtsets(:)%ddb_shiftq(1)
     570        29986 :  dprarr(2,:)=dtsets(:)%ddb_shiftq(2)
     571        29986 :  dprarr(3,:)=dtsets(:)%ddb_shiftq(3)
     572         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'ddb_shiftq','DPR',0)
     573              : 
     574        29986 :  intarr(1,:)=dtsets(:)%delayperm
     575         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'delayperm','INT',0)
     576              : 
     577        29986 :  intarr(1,:)=dtsets(:)%densfor_pred
     578         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'densfor_pred','INT',0)
     579              : 
     580              : !densty
     581              :  narr=mxvals%ntypat              ! default size for all datasets
     582        29986 :  do idtset=0,ndtset_alloc        ! specific size for each dataset
     583        25462 :    narrm(idtset)=dtsets(idtset)%ntypat
     584        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
     585              : !  Only one component of densty is used until now
     586        62144 :    dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%densty(1:narrm(idtset),1)
     587              :  end do
     588         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'densty','DPR',multivals%ntypat)
     589              : 
     590        29986 :  dprarr(1,:)=dtsets(:)%dfield(1)
     591        29986 :  dprarr(2,:)=dtsets(:)%dfield(2)
     592        29986 :  dprarr(3,:)=dtsets(:)%dfield(3)
     593         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'dfield','DPR',0)
     594              : 
     595        29986 :  dprarr(1,:)=dtsets(:)%dfpt_sciss
     596         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dfpt_sciss','ENE',0)
     597              : 
     598        29986 :  dprarr(1,:)=dtsets(:)%diecut
     599         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'diecut','ENE',0)
     600              : 
     601        29986 :  dprarr(1,:)=dtsets(:)%diegap
     602         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'diegap','ENE',0)
     603              : 
     604        29986 :  dprarr(1,:)=dtsets(:)%dielam
     605         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dielam','DPR',0)
     606              : 
     607        29986 :  dprarr(1,:)=dtsets(:)%dielng
     608         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dielng','LEN',0)
     609              : 
     610        29986 :  dprarr(1,:)=dtsets(:)%diemac
     611         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'diemac','DPR',0)
     612              : 
     613        29986 :  dprarr(1,:)=dtsets(:)%diemix
     614         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'diemix','DPR',0)
     615              : 
     616        25398 :  if (any(dtsets(1:ndtset_alloc)%diemixmag/=dtsets(1:ndtset_alloc)%diemix)) then
     617          136 :    dprarr(1,:)=dtsets(:)%diemixmag
     618           28 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'diemixmag','DPR',0)
     619              :  end if
     620              : 
     621        29986 :  intarr(1,:)=dtsets(:)%diismemory
     622         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'diismemory','INT',0)
     623              : 
     624        29986 :  dprarr(1,:)=dtsets(:)%dilatmx
     625         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dilatmx','DPR',0)
     626              : 
     627        29986 :  intarr(1,:)=dtsets(:)%dipdip
     628         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dipdip','INT',0)
     629              : 
     630        29986 :  intarr(1,:)=dtsets(:)%dipquad
     631         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dipquad','INT',0)
     632              : 
     633              : !dmatpawu
     634         4524 :  if (dmatpuflag==1.and.mxvals%natpawu>0) then
     635          284 :    prtimg(:,:)=1
     636          160 :    do idtset=0,ndtset_alloc
     637          124 :      mxnsp=max(dtsets(idtset)%nsppol,dtsets(idtset)%nspinor)
     638          344 :      lpawu1=maxval(dtsets(idtset)%lpawu(:))
     639          124 :      narrm(idtset)=((2*lpawu1+1)**2)*mxnsp*dtsets(idtset)%natpawu
     640          284 :      do iimage=1,nimagem(idtset)
     641          248 :        if (narrm(idtset)>0) then
     642              :          dprarr_images(1:narrm(idtset),iimage,idtset)= &
     643              : &         reshape(dtsets(idtset)%dmatpawu(&
     644              : &         1:2*lpawu1+1,1:2*lpawu1+1,1:mxnsp,1:dtsets(idtset)%natpawu,iimage),&
     645          168 : &         (/narrm(idtset)/))
     646              :        end if
     647              :      end do
     648              :    end do
     649              :    call prttagm_images(dprarr_images,iout,jdtset_,5,marr,narrm,&
     650           36 :      ncid,ndtset_alloc,'dmatpawu','DPR',mxvals%nimage,nimagem,ndtset,prtimg,strimg)
     651              :  end if
     652              : 
     653        29986 :  intarr(1,:)=dtsets(:)%dmatpuopt
     654         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmatpuopt','INT',0)
     655              : 
     656        29986 :  intarr(1,:)=dtsets(:)%dmatudiag
     657         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmatudiag','INT',0)
     658              : 
     659        29986 :  intarr(1,:)=dtsets(:)%dmftbandf
     660         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftbandf','INT',0)
     661              : 
     662        29986 :  intarr(1,:)=dtsets(:)%dmftbandi
     663         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftbandi','INT',0)
     664              : 
     665        29986 :  dprarr(1,:)=dtsets(:)%dmft_charge_prec
     666         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_charge_prec','DPR',0)
     667              : 
     668        29986 :  intarr(1,:)=dtsets(:)%dmftcheck
     669         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftcheck','INT',0)
     670              : 
     671        29986 :  intarr(1,:)=dtsets(:)%dmftctqmc_basis
     672         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftctqmc_basis','INT',0)
     673              : 
     674        29986 :  intarr(1,:)=dtsets(:)%dmftctqmc_meas
     675         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftctqmc_meas','INT',0)
     676              : 
     677        29986 :  dprarr(1,:)=dtsets(:)%dmftctqmc_chains
     678         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftctqmc_chains','INT',0,firstchar="-")
     679              : 
     680        29986 :  intarr(1,:)=dtsets(:)%dmft_dc
     681         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_dc','INT',0)
     682              : 
     683        29986 :  dprarr(1,:)=dtsets(:)%dmft_fermi_step
     684         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_fermi_step','DPR',0)
     685              : 
     686        29986 :  intarr(1,:)=dtsets(:)%dmft_iter
     687         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_iter','INT',0)
     688              : 
     689              : ! intarr(1,:)=dtsets(:)%dmft_kspectralfunc
     690              : ! call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_kspectralfunc','INT',0)
     691              : 
     692        29986 :  dprarr(1,:)=dtsets(:)%dmft_mxsf
     693         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_mxsf','DPR',0)
     694              : 
     695              :  !narr=mxvals%natom                    ! default size for all datasets
     696              :  !do idtset=0,ndtset_alloc       ! specific size for each dataset
     697              :  !  narrm(idtset)=dtsets(idtset)%natom
     698              :  !  if(idtset==0)narrm(idtset)=mxvals%natom
     699              :  !  if (narrm(idtset)>0) intarr(1:narrm(idtset),idtset)=dtsets(idtset)%dmft_nominal(1:narrm(idtset))
     700              :  !end do
     701              :  !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'dmft_nominal','INT',multivals%natom)
     702              : 
     703        29986 :  intarr(1,:)=dtsets(:)%dmft_nwli
     704         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_nwli','INT',0)
     705              : 
     706        29986 :  intarr(1,:)=dtsets(:)%dmft_nwlo
     707         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_nwlo','INT',0)
     708              : 
     709        29986 :  intarr(1,:)=dtsets(:)%dmft_occnd_imag
     710         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_occnd_imag','INT',0)
     711              : 
     712              :  narr=mxvals%ntypat                    ! default size for all datasets
     713        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     714        25462 :    narrm(idtset)=dtsets(idtset)%ntypat
     715        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
     716        62144 :    if (narrm(idtset)>0) intarr(1:narrm(idtset),idtset)=dtsets(idtset)%dmft_orbital(1:narrm(idtset))
     717              :  end do
     718         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'dmft_orbital','INT',multivals%ntypat)
     719              : 
     720        29986 :  intarr(1,:)=dtsets(:)%dmft_prt_maxent
     721         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_prt_maxent','INT',0)
     722              : 
     723        29986 :  intarr(1,:)=dtsets(:)%dmft_prtself
     724         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_prtself','INT',0)
     725              : 
     726        29986 :  intarr(1,:)=dtsets(:)%dmft_prtwan
     727         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_prtwan','INT',0)
     728              : 
     729        29986 :  intarr(1,:)=dtsets(:)%dmftqmc_l
     730         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftqmc_l','INT',0)
     731              : 
     732        29986 :  dprarr(1,:)=dtsets(:)%dmftqmc_n
     733         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftqmc_n','DPR',0)
     734              : 
     735        29986 :  intarr(1,:)=dtsets(:)%dmftqmc_therm
     736         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmftqmc_therm','INT',0)
     737              : 
     738        29986 :  intarr(1,:)=dtsets(:)%dmft_read_occnd
     739         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_read_occnd','INT',0)
     740              : 
     741        29986 :  intarr(1,:)=dtsets(:)%dmft_rslf
     742         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_rslf','INT',0)
     743              : 
     744         4524 :  narr=mxvals%natom                    ! default size for all datasets
     745        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
     746        25462 :    narrm(idtset)=dtsets(idtset)%natom
     747        25462 :    if(idtset==0)narrm(idtset)=mxvals%natom
     748       136360 :    if (narrm(idtset)>0) dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%dmft_shiftself(1:narrm(idtset))
     749              :  end do
     750         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'dmft_shiftself','DPR',multivals%natom)
     751              : 
     752        29986 :  intarr(1,:)=dtsets(:)%dmft_solv
     753         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_solv','INT',0)
     754              : 
     755        29986 :  intarr(1,:)=dtsets(:)%dmft_t2g
     756         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_t2g','INT',0)
     757              : 
     758        29986 :  dprarr(1,:)=dtsets(:)%dmft_tolfreq
     759         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_tolfreq','DPR',0)
     760              : 
     761        29986 :  dprarr(1,:)=dtsets(:)%dmft_tollc
     762         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_tollc','DPR',0)
     763              : 
     764        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_basis
     765         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_basis','INT',0)
     766              : 
     767        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_compute_integral
     768         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_compu','INT',0)
     769              : 
     770        29986 :  dprarr(1,:)=dtsets(:)%dmft_triqs_dlr_epsilon
     771         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_dlr_e','DPR',0)
     772              : 
     773        29986 :  dprarr(1,:)=dtsets(:)%dmft_triqs_dlr_wmax
     774         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_dlr_w','DPR',0)
     775              : 
     776        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_entropy
     777         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_entro','INT',0)
     778              : 
     779        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_gaussorder
     780         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_gauss','INT',0)
     781              : 
     782        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_length_cycle
     783         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_lengt','INT',0)
     784              : 
     785        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_n_cycles
     786         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_n_cyc','INT',0)
     787              : 
     788        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_n_iw
     789         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_n_iw','INT',0)
     790              : 
     791        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_n_l
     792         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_n_l','INT',0)
     793              : 
     794        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_n_tau
     795         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_n_tau','INT',0)
     796              : 
     797        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_n_warmup_cycles_init
     798         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_n_wai','INT',0)
     799              : 
     800        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_n_warmup_cycles_restart
     801         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_n_war','INT',0)
     802              : 
     803        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_nsubdivisions
     804         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_nsubd','INT',0)
     805              : 
     806        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_off_diag
     807         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_off_d','INT',0)
     808              : 
     809        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_prt_entropy
     810         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_prt_e','INT',0)
     811              : 
     812        29986 :  intarr(1,:)=dtsets(:)%dmft_triqs_read_ctqmcdata
     813         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_readc','INT',0)
     814              : 
     815        29986 :  dprarr(1,:)=dtsets(:)%dmft_triqs_shift_mu
     816         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_shifm','DPR',0)
     817              : 
     818        29986 :  dprarr(1,:)=dtsets(:)%dmft_triqs_tol_block
     819         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_triqs_tol_b','DPR',0)
     820              : 
     821        29986 :  intarr(1,:)=dtsets(:)%dmft_full_chipsi
     822         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_full_chipsi','INT',0)
     823              : 
     824        29986 :  intarr(1,:)=dtsets(:)%dmft_wanorthnorm
     825         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_wanorthnorm','INT',0)
     826              : 
     827        29986 :  dprarr(1,:)=dtsets(:)%dmft_wanrad
     828         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_wanrad','DPR',0)
     829              : 
     830        29986 :  intarr(1,:)=dtsets(:)%dmft_x2my2d
     831         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_x2my2d','INT',0)
     832              : 
     833        29986 :  dprarr(1,:)=dtsets(:)%dmft_yukawa_epsilon
     834         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_yukawa_eps','DPR',0)
     835              : 
     836        29986 :  dprarr(1,:)=dtsets(:)%dmft_yukawa_lambda
     837         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_yukawa_lam','DPR',0)
     838              : 
     839        29986 :  intarr(1,:)=dtsets(:)%dmft_yukawa_param
     840         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'dmft_yukawa_par','INT',0)
     841              : 
     842        29986 :  dprarr(1,:)=dtsets(:)%dosdeltae
     843         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dosdeltae','ENE',0)
     844              : 
     845        29986 :  dprarr(1,:)=dtsets(:)%dtion
     846         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dtion','DPR',0,forceprint=2)
     847              : 
     848        29986 :  dprarr(1,:)=dtsets(:)%dtele
     849         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dtele','DPR',0,forceprint=2)
     850              : 
     851        29986 :  intarr(1,:)=dtsets(:)%dvdb_add_lr
     852         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dvdb_add_lr','INT',0)
     853              : 
     854        29986 :  dprarr(1,:)=dtsets(:)%dvdb_qdamp
     855         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dvdb_qdamp','DPR',0)
     856              : 
     857        29986 :  intarr(1,:)=dtsets(:)%dvdb_rspace_cell
     858         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'dvdb_rspace_cell','INT',0)
     859              : 
     860              : !dynimage
     861      4409052 :  intarr(1:marr,0)=1                 ! default value
     862         4524 :  narr=nimage                        ! default size for all datasets
     863        25462 :  do idtset=1,ndtset_alloc           ! specific size and array for each dataset
     864        20938 :    narrm(idtset)=dtsets(idtset)%nimage
     865        47152 :    intarr(1:narrm(idtset),idtset)=dtsets(idtset)%dynimage(1:narrm(idtset))
     866              :  end do
     867         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'dynimage','INT',multivals%nimage)
     868              : 
     869              : !Variables for nonlinear response
     870         4524 :  test_write=0
     871        25462 :  do idtset=1,ndtset_alloc
     872        25462 :    if(dtsets(idtset)%d3e_pert1_atpol(1)/=1 .or. dtsets(idtset)%d3e_pert1_atpol(2)/=dtsets(idtset)%natom)test_write=1
     873              :  enddo
     874         4524 :  if(test_write==1)then
     875          192 :    intarr(1,:)=dtsets(:)%d3e_pert1_atpol(1)
     876          192 :    intarr(2,:)=dtsets(:)%d3e_pert1_atpol(2)
     877           20 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'d3e_pert1_atpol','INT',0)
     878              :  endif
     879              : 
     880        29986 :  intarr(1,:)=dtsets(:)%d3e_pert1_dir(1)
     881        29986 :  intarr(2,:)=dtsets(:)%d3e_pert1_dir(2)
     882        29986 :  intarr(3,:)=dtsets(:)%d3e_pert1_dir(3)
     883         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'d3e_pert1_dir','INT',0)
     884              : 
     885        29986 :  intarr(1,:)=dtsets(:)%d3e_pert1_elfd
     886         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert1_elfd','INT',0)
     887              : 
     888         4524 :  test_write=0
     889        25462 :  do idtset=1,ndtset_alloc
     890        25462 :    if(dtsets(idtset)%d3e_pert1_magat(1)/=1 .or. dtsets(idtset)%d3e_pert1_magat(2)/=dtsets(idtset)%natom)test_write=1
     891              :  enddo
     892         4524 :  if(test_write==1)then
     893           40 :    intarr(1,:)=dtsets(:)%d3e_pert1_magat(1)
     894           40 :    intarr(2,:)=dtsets(:)%d3e_pert1_magat(2)
     895            8 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'d3e_pert1_magat','INT',0)
     896              :  endif
     897              : 
     898        29986 :  intarr(1,:)=dtsets(:)%d3e_pert1_magdir(1)
     899        29986 :  intarr(2,:)=dtsets(:)%d3e_pert1_magdir(2)
     900        29986 :  intarr(3,:)=dtsets(:)%d3e_pert1_magdir(3)
     901         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'d3e_pert1_magdir','INT',0)
     902              : 
     903        29986 :  intarr(1,:)=dtsets(:)%d3e_pert1_magn
     904         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert1_magn','INT',0)
     905              : 
     906        29986 :  intarr(1,:)=dtsets(:)%d3e_pert1_phon
     907         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert1_phon','INT',0)
     908              : 
     909         4524 :  test_write=0
     910        25462 :  do idtset=1,ndtset_alloc
     911        25462 :    if(dtsets(idtset)%d3e_pert2_atpol(1)/=1 .or. dtsets(idtset)%d3e_pert2_atpol(2)/=dtsets(idtset)%natom)test_write=1
     912              :  enddo
     913         4524 :  if(test_write==1)then
     914           76 :    intarr(1,:)=dtsets(:)%d3e_pert2_atpol(1)
     915           76 :    intarr(2,:)=dtsets(:)%d3e_pert2_atpol(2)
     916           12 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'d3e_pert2_atpol','INT',0)
     917              :  endif
     918              : 
     919        29986 :  intarr(1,:)=dtsets(:)%d3e_pert2_dir(1)
     920        29986 :  intarr(2,:)=dtsets(:)%d3e_pert2_dir(2)
     921        29986 :  intarr(3,:)=dtsets(:)%d3e_pert2_dir(3)
     922         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'d3e_pert2_dir','INT',0)
     923              : 
     924        29986 :  intarr(1,:)=dtsets(:)%d3e_pert2_elfd
     925         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert2_elfd','INT',0)
     926              : 
     927         4524 :  test_write=0
     928        25462 :  do idtset=1,ndtset_alloc
     929        25462 :    if(dtsets(idtset)%d3e_pert2_magat(1)/=1 .or. dtsets(idtset)%d3e_pert2_magat(2)/=dtsets(idtset)%natom)test_write=1
     930              :  enddo
     931         4524 :  if(test_write==1)then
     932           40 :    intarr(1,:)=dtsets(:)%d3e_pert2_magat(1)
     933           40 :    intarr(2,:)=dtsets(:)%d3e_pert2_magat(2)
     934            8 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'d3e_pert2_magat','INT',0)
     935              :  endif
     936              : 
     937        29986 :  intarr(1,:)=dtsets(:)%d3e_pert2_magdir(1)
     938        29986 :  intarr(2,:)=dtsets(:)%d3e_pert2_magdir(2)
     939        29986 :  intarr(3,:)=dtsets(:)%d3e_pert2_magdir(3)
     940         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'d3e_pert2_magdir','INT',0)
     941              : 
     942        29986 :  intarr(1,:)=dtsets(:)%d3e_pert2_magn
     943         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert2_magn','INT',0)
     944              : 
     945        29986 :  intarr(1,:)=dtsets(:)%d3e_pert2_phon
     946         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert2_phon','INT',0)
     947              : 
     948        29986 :  intarr(1,:)=dtsets(:)%d3e_pert2_strs
     949         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert2_strs','INT',0)
     950              : 
     951         4524 :  test_write=0
     952        25462 :  do idtset=1,ndtset_alloc
     953        25462 :    if(dtsets(idtset)%d3e_pert3_atpol(1)/=1 .or. dtsets(idtset)%d3e_pert3_atpol(2)/=dtsets(idtset)%natom)test_write=1
     954              :  enddo
     955         4524 :  if(test_write==1)then
     956           36 :    intarr(1,:)=dtsets(:)%d3e_pert3_atpol(1)
     957           36 :    intarr(2,:)=dtsets(:)%d3e_pert3_atpol(2)
     958            4 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'d3e_pert3_atpol','INT',0)
     959              :  endif
     960              : 
     961        29986 :  intarr(1,:)=dtsets(:)%d3e_pert3_dir(1)
     962        29986 :  intarr(2,:)=dtsets(:)%d3e_pert3_dir(2)
     963        29986 :  intarr(3,:)=dtsets(:)%d3e_pert3_dir(3)
     964         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'d3e_pert3_dir','INT',0)
     965              : 
     966        29986 :  intarr(1,:)=dtsets(:)%d3e_pert3_elfd
     967         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert3_elfd','INT',0)
     968              : 
     969        29986 :  intarr(1,:)=dtsets(:)%d3e_pert3_phon
     970         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'d3e_pert3_phon','INT',0)
     971              : 
     972              : !###########################################################
     973              : !### 03. Print all the input variables (E)
     974              : !##
     975              : 
     976        29986 :  dprarr(1,:)=dtsets(:)%ecut
     977         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ecut','ENE',0)
     978              : 
     979        29986 :  dprarr(1,:)=dtsets(:)%ecuteps
     980         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ecuteps','ENE',0)
     981              : 
     982        29986 :  dprarr(1,:)=dtsets(:)%ecutsigx
     983         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ecutsigx','ENE',0)
     984              : 
     985        29986 :  dprarr(1,:)=dtsets(:)%ecutsm
     986         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ecutsm','ENE',0)
     987              : 
     988        29986 :  dprarr(1,:)=dtsets(:)%ecutwfn
     989         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ecutwfn','ENE',0)
     990              : 
     991        29986 :  dprarr(1,:)=dtsets(:)%effmass_free
     992         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'effmass_free','DPR',0)
     993              : 
     994        29986 :  dprarr(1,:)=dtsets(:)%efield(1)
     995        29986 :  dprarr(2,:)=dtsets(:)%efield(2)
     996        29986 :  dprarr(3,:)=dtsets(:)%efield(3)
     997         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'efield','DPR',0)
     998              : 
     999         4524 :  nn = size(dtsets(0)%einterp)
    1000        22620 :  do ii=1,nn
    1001       124468 :    dprarr(ii,:)=dtsets(:)%einterp(ii)
    1002              :  end do
    1003         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,nn,narrm,ncid,ndtset_alloc,'einterp','DPR',0)
    1004              : 
    1005        29986 :  dprarr(1,:)=dtsets(:)%elph2_imagden
    1006         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'elph2_imagden','ENE',0)
    1007              : 
    1008        29986 :  intarr(1,:)=dtsets(:)%enunit
    1009         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'enunit','INT',0)
    1010              : 
    1011        29986 :  intarr(1,:)=dtsets(:)%eph_ahc_type
    1012         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_ahc_type','INT',0)
    1013              : 
    1014        29986 :  intarr(1,:)=dtsets(:)%eph_path_brange(1)
    1015        29986 :  intarr(2,:)=dtsets(:)%eph_path_brange(2)
    1016         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'eph_path_brange','INT',0)
    1017              : 
    1018        29986 :  dprarr(1,:)=dtsets(:)%eph_ecutosc
    1019         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_ecutosc','ENE',0)
    1020              : 
    1021        29986 :  dprarr(1,:)=dtsets(:)%eph_phwinfact
    1022         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_phwinfact','DPR',0)
    1023              : 
    1024        29986 :  dprarr(1,:)=dtsets(:)%eph_extrael
    1025         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_extrael','DPR',0)
    1026              : 
    1027        29986 :  dprarr(1,:)=dtsets(:)%eph_fermie
    1028         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_fermie','ENE',0)
    1029              : 
    1030        29986 :  intarr(1,:)=dtsets(:)%eph_frohlichm
    1031         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_frohlichm','INT',0)
    1032              : 
    1033        29986 :  intarr(1,:)=dtsets(:)%eph_frohl_ntheta
    1034         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_frohl_ntheta','INT',0)
    1035              : 
    1036        29986 :  dprarr(1,:)=dtsets(:)%eph_fsewin
    1037         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_fsewin','ENE',0)
    1038              : 
    1039        29986 :  dprarr(1,:)=dtsets(:)%eph_fsmear
    1040         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_fsmear','ENE',0)
    1041              : 
    1042        29986 :  intarr(1,:)=dtsets(:)%eph_intmeth
    1043         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_intmeth','INT',0)
    1044              : 
    1045        29986 :  dprarr(1,:)=dtsets(:)%eph_mustar
    1046         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_mustar','DPR',0)
    1047              : 
    1048        29986 :  do idtset=0,ndtset_alloc
    1049       106372 :    intarr(1:3,idtset)=dtsets(idtset)%eph_ngkpt_fine
    1050              :  end do
    1051         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'eph_ngkpt_fine','INT',0)
    1052              : 
    1053        29986 :  do idtset=0,ndtset_alloc
    1054       106372 :    intarr(1:3,idtset)=dtsets(idtset)%eph_ngqpt_fine
    1055              :  end do
    1056         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'eph_ngqpt_fine','INT',0)
    1057              : 
    1058        29986 :  intarr(1,:)=dtsets(:)%eph_nshiftk_fine
    1059         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eph_nshiftk_fine','INT',0)
    1060              : 
    1061        29986 :  narr = 3 * maxval(dtsets(:)%eph_nshiftk_fine)
    1062       106372 :  dprarr(1:narr,:) = zero
    1063        29986 :  do idtset=0,ndtset_alloc
    1064        29986 :    if (allocated(dtsets(idtset)%eph_shiftk_fine)) then
    1065              :      dprarr(1:3*dtsets(idtset)%eph_nshiftk_fine,idtset) = reshape(dtsets(idtset)%eph_shiftk_fine, &
    1066        41876 :        [3*dtsets(idtset)%eph_nshiftk_fine])
    1067              :    end if
    1068              :  end do
    1069         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'eph_shiftk_fine','DPR',0)
    1070              : 
    1071         4524 :  narr = size(dtsets(0)%eph_np_pqbks)
    1072        29986 :  do idtset=0,ndtset_alloc
    1073       157296 :    intarr(1:narr,idtset) = dtsets(idtset)%eph_np_pqbks
    1074              :  end do
    1075         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'eph_np_pqbks','INT',0, firstchar="-")
    1076              : 
    1077         4524 :  narr = size(dtsets(0)%gwpt_np_wpqbks)
    1078        29986 :  do idtset=0,ndtset_alloc
    1079       182758 :    intarr(1:narr,idtset) = dtsets(idtset)%gwpt_np_wpqbks
    1080              :  end do
    1081         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'gwpt_np_wpqbks','INT',0, firstchar="-")
    1082              : 
    1083        29986 :  intarr(1,:)=dtsets(:)%eph_phrange(1)
    1084        29986 :  intarr(2,:)=dtsets(:)%eph_phrange(2)
    1085         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'eph_phrange','INT',0)
    1086              : 
    1087        29986 :  dprarr(1,:)=dtsets(:)%eph_phrange_w(1)
    1088        29986 :  dprarr(2,:)=dtsets(:)%eph_phrange_w(2)
    1089         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'eph_phrange_w','ENE',0)
    1090              : 
    1091        29986 :  intarr(1,:)=dtsets(:)%eph_prtscratew
    1092         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_prtscratew','INT',0)
    1093              : 
    1094        29986 :  intarr(1,:)=dtsets(:)%eph_restart
    1095         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_restart','INT',0)
    1096              : 
    1097        29986 :  intarr(1,:)=dtsets(:)%eph_stern
    1098         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_stern','INT',0)
    1099              : 
    1100        29986 :  intarr(1,:)=dtsets(:)%eph_task
    1101         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_task','INT',0)
    1102              : 
    1103        29986 :  dprarr(1,:)=dtsets(:)%eph_tols_idelta(1)
    1104        29986 :  dprarr(2,:)=dtsets(:)%eph_tols_idelta(2)
    1105         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'eph_tols_idelta','DPR',0)
    1106              : 
    1107        29986 :  do idtset=0,ndtset_alloc
    1108       106372 :    dprarr(1:3,idtset)=dtsets(idtset)%eph_fix_wavevec(:)
    1109              :  end do
    1110         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'eph_fix_wavevec','DPR',0)
    1111              : 
    1112        29986 :  intarr(1,:)=dtsets(:)%eph_transport
    1113         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_transport','INT',0)
    1114              : 
    1115        29986 :  intarr(1,:)=dtsets(:)%eph_use_ftinterp
    1116         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'eph_use_ftinterp','INT',0)
    1117              : 
    1118        29986 :  dprarr(1,:)=dtsets(:)%eshift
    1119         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'eshift','ENE',0)
    1120              : 
    1121        29986 :  dprarr(1,:)=dtsets(:)%esmear
    1122         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'esmear','ENE',0)
    1123              : 
    1124              : !etotal
    1125         4524 :  if(choice==2)then
    1126        24872 :    prtimg(:,:)=1
    1127        13244 :    do idtset=0,ndtset_alloc       ! specific size for each dataset
    1128        11018 :      compute_static_images=(dtsets(idtset)%istatimg>0)
    1129        11018 :      narrm(idtset)=1
    1130              : 
    1131        13244 :      if(dtsets(idtset)%iscf>=0 .or. dtsets(idtset)%iscf==-3)then
    1132        20592 :        do iimage=1,dtsets(idtset)%nimage
    1133              :          if (narrm(idtset)>0) then
    1134        20968 :            dprarr_images(1:narrm(idtset),iimage,idtset)=results_out(idtset)%etotal(iimage)
    1135              :          end if
    1136        20592 :          if(.not.(dtsets(idtset)%dynimage(iimage)==1.or.compute_static_images))then
    1137            8 :            prtimg(iimage,idtset)=0
    1138              :          end if
    1139              :        end do
    1140              :      else
    1141          910 :        narrm(idtset)=0
    1142              :      end if
    1143              :    end do
    1144              : !  This is a trick to force printing of etotal even if zero, still not destroying the value of nimagem(0).
    1145         2226 :    tmpimg0=nimagem(0)
    1146         2226 :    nimagem(0)=0
    1147              :    call prttagm_images(dprarr_images,iout,jdtset_,2,marr,narrm,ncid,ndtset_alloc,'etotal','DPR',&
    1148         2226 :      mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1149         2226 :    nimagem(0)=tmpimg0
    1150              :  end if
    1151              : 
    1152        29986 :  dprarr(1,:)=dtsets(:)%exchmix
    1153         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'exchmix','DPR',0)
    1154              : 
    1155        29986 :  intarr(1,:)=dtsets(:)%exchn2n3d
    1156         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'exchn2n3d','INT',0)
    1157              : 
    1158        29986 :  intarr(1,:)=dtsets(:)%extrapwf
    1159         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'extrapwf','INT',0)
    1160              : 
    1161        29986 :  intarr(1,:)=dtsets(:)%expert_user
    1162         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'expert_user','INT',0)
    1163              : 
    1164              : !###########################################################
    1165              : !### 03. Print all the input variables (F)
    1166              : !##
    1167              : 
    1168              : !fcart
    1169         4524 :  if(choice==2)then
    1170        24872 :    prtimg(:,:)=1
    1171        13244 :    do idtset=0,ndtset_alloc       ! specific size for each dataset
    1172        11018 :      compute_static_images=(dtsets(idtset)%istatimg>0)
    1173        11018 :      size2=dtsets(idtset)%natom
    1174        11018 :      if(idtset==0)size2=0
    1175        11018 :      narrm(idtset)=3*size2
    1176        13244 :      if(dtsets(idtset)%iscf>=0 .or. idtset==0)then
    1177        19920 :        do iimage=1,dtsets(idtset)%nimage
    1178        10148 :          if (narrm(idtset)>0) then
    1179              :            dprarr_images(1:narrm(idtset),iimage,idtset)=&
    1180        15844 : &           reshape(results_out(idtset)%fcart(1:3,1:size2,iimage),(/ narrm(idtset) /) )
    1181              :          end if
    1182        19920 :          if(.not.(dtsets(idtset)%dynimage(iimage)==1.or.compute_static_images))then
    1183            8 :            prtimg(iimage,idtset)=0
    1184              :          end if
    1185              :        end do
    1186              :      else
    1187         1246 :        narrm(idtset)=0
    1188              :      end if
    1189              :    end do
    1190              : !  This is a trick to force printing of fcart even if zero, still not destroying the value of nimagem(0).
    1191         2226 :    tmpimg0=nimagem(0)
    1192         2226 :    nimagem(0)=0
    1193              :    call prttagm_images(dprarr_images,iout,jdtset_,2,marr,narrm,ncid,ndtset_alloc,'fcart','DPR',&
    1194         2226 :      mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1195         2226 :    nimagem(0)=tmpimg0
    1196              :  end if
    1197              : 
    1198        29986 :  dprarr(1,:)=dtsets(:)%fermie_nest
    1199         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'fermie_nest','DPR',0)
    1200              : 
    1201        29986 :  intarr(1,:)=dtsets(:)%ffnl_lw
    1202         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ffnl_lw','INT',0)
    1203              : 
    1204         4524 :  firstchar_fftalg = "_"
    1205        29986 :  intarr(1,:)=dtsets(:)%ngfft(7)
    1206         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'fftalg','INT',0,firstchar="-",forceprint=3)
    1207              : 
    1208        29986 :  intarr(1,:)=dtsets(:)%ngfft(8)
    1209         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'fftcache','INT',0)
    1210              : 
    1211        29986 :  intarr(1,:)=dtsets(:)%fftgw
    1212         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'fftgw','INT',0)
    1213              : 
    1214        29986 :  intarr(1,:)=dtsets(:)%fft_count
    1215         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'fft_count','INT',0)
    1216              : 
    1217        29986 :  intarr(1,:)=dtsets(:)%fockoptmix
    1218         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'fockoptmix','INT',0)
    1219              : 
    1220        29986 :  dprarr(1,:)=dtsets(:)%focktoldfe
    1221         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'focktoldfe','DPR',0)
    1222              : 
    1223        29986 :  intarr(1,:)=dtsets(:)%fockdownsampling(1)
    1224        29986 :  intarr(2,:)=dtsets(:)%fockdownsampling(2)
    1225        29986 :  intarr(3,:)=dtsets(:)%fockdownsampling(3)
    1226         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'fockdownsampling','INT',0)
    1227              : 
    1228        29986 :  intarr(1,:)=dtsets(:)%fock_icutcoul
    1229         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'fock_icutcoul','INT',0)
    1230              : 
    1231        29986 :  dprarr(1,:)=dtsets(:)%fock_rcut
    1232         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'fock_rcut','LEN',0)
    1233              : 
    1234        29986 :  dprarr(1,:)=dtsets(:)%freqim_alpha
    1235         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'freqim_alpha','DPR',0)
    1236              : 
    1237        29986 :  dprarr(1,:)=dtsets(:)%freqremax
    1238         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'freqremax','ENE',0)
    1239              : 
    1240        29986 :  dprarr(1,:)=dtsets(:)%freqremin
    1241         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'freqremin','ENE',0)
    1242              : 
    1243        29986 :  dprarr(1,:)=dtsets(:)%freqspmax
    1244         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'freqspmax','ENE',0)
    1245              : 
    1246        29986 :  dprarr(1,:)=dtsets(:)%freqspmin
    1247         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'freqspmin','ENE',0)
    1248              : 
    1249        29986 :  dprarr(1,:)=dtsets(:)%friction
    1250         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'friction','DPR',0)
    1251              : 
    1252        29986 :  dprarr(1,:)=dtsets(:)%frictionbar
    1253         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'frictionbar','DPR',0)
    1254              : 
    1255        29986 :  intarr(1,:)=dtsets(:)%frzfermi
    1256         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'frzfermi','INT',0)
    1257              : 
    1258        29986 :  dprarr(1,:)=dtsets(:)%fxcartfactor
    1259         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'fxcartfactor','DPR',0)
    1260              : 
    1261              : !f4of2_sla
    1262         4524 :  narr=mxvals%ntypat                    ! default size for all datasets
    1263        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1264        25462 :    narrm(idtset)=dtsets(idtset)%ntypat
    1265        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
    1266        29986 :    if (narrm(idtset)>0) then
    1267        57620 :      dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%f4of2_sla(1:narrm(idtset))
    1268              :    end if
    1269              :  end do
    1270         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'f4of2_sla','DPR',multivals%ntypat)
    1271              : 
    1272              : !f6of2_sla
    1273              :  narr=mxvals%ntypat                    ! default size for all datasets
    1274        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1275        25462 :    narrm(idtset)=dtsets(idtset)%ntypat
    1276        25462 :    if(idtset==0)narrm(idtset)=mxvals%ntypat
    1277        29986 :    if (narrm(idtset)>0) then
    1278        57620 :      dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%f6of2_sla(1:narrm(idtset))
    1279              :    end if
    1280              :  end do
    1281         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'f6of2_sla','DPR',multivals%ntypat)
    1282              : 
    1283              : !###########################################################
    1284              : !### 03. Print all the input variables (G)
    1285              : !##
    1286              : 
    1287        29986 :  intarr(1,:)=dtsets(:)%ga_algor
    1288         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ga_algor','INT',0)
    1289              : 
    1290        29986 :  intarr(1,:)=dtsets(:)%ga_fitness
    1291         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ga_fitness','INT',0)
    1292              : 
    1293        29986 :  intarr(1,:)=dtsets(:)%ga_n_rules
    1294         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ga_n_rules','INT',0)
    1295              : 
    1296        29986 :  dprarr(1,:)=dtsets(:)%ga_opt_percent
    1297         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ga_opt_percent','DPR',0)
    1298              : 
    1299              : !ga_rules
    1300         4524 :  narr=ga_n_rules                    ! default size for all datasets
    1301        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1302        25462 :    narrm(idtset)=dtsets(idtset)%ga_n_rules
    1303        25462 :    if(idtset==0)narrm(idtset)=mxvals%ga_n_rules
    1304        55472 :    intarr(1:narrm(idtset),idtset)=dtsets(idtset)%ga_rules(1:narrm(idtset))
    1305              :  end do
    1306         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'ga_rules','INT',multivals%ga_n_rules)
    1307              : 
    1308        29986 :  intarr(1,:)=dtsets(:)%getabiwan
    1309         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getabiwan','INT',0)
    1310              : 
    1311        29986 :  intarr(1,:)=dtsets(:)%getgwan
    1312         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getgwan','INT',0)
    1313              : 
    1314        29986 :  intarr(1,:)=dtsets(:)%getbscoup
    1315         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getbscoup','INT',0)
    1316              : 
    1317        29986 :  intarr(1,:)=dtsets(:)%getbseig
    1318         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getbseig','INT',0)
    1319              : 
    1320        29986 :  intarr(1,:)=dtsets(:)%getbsreso
    1321         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getbsreso','INT',0)
    1322              : 
    1323        29986 :  intarr(1,:)=dtsets(:)%getcell
    1324         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getcell','INT',0)
    1325              : 
    1326        29986 :  intarr(1,:)=dtsets(:)%getctqmcdata
    1327         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getctqmcdata','INT',0)
    1328              : 
    1329        29986 :  intarr(1,:)=dtsets(:)%getddb
    1330         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getddb','INT',0)
    1331              : 
    1332        29986 :  intarr(1,:)=dtsets(:)%getddk
    1333         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getddk','INT',0)
    1334              : 
    1335        29986 :  intarr(1,:)=dtsets(:)%getdelfd
    1336         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getdelfd','INT',0)
    1337              : 
    1338        29986 :  intarr(1,:)=dtsets(:)%getdkdk
    1339         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getdkdk','INT',0)
    1340              : 
    1341        29986 :  intarr(1,:)=dtsets(:)%getdkde
    1342         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getdkde','INT',0)
    1343              : 
    1344        29986 :  intarr(1,:)=dtsets(:)%getden
    1345         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getden','INT',0)
    1346              : 
    1347        29986 :  intarr(1,:)=dtsets(:)%getdvdb
    1348         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getdvdb','INT',0)
    1349              : 
    1350        29986 :  intarr(1,:)=dtsets(:)%getdrhodb
    1351         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getdrhodb','INT',0)
    1352              : 
    1353        29986 :  intarr(1,:)=dtsets(:)%getefmas
    1354         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getefmas','INT',0)
    1355              : 
    1356        29986 :  intarr(1,:)=dtsets(:)%getgam_eig2nkq
    1357         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getgam_eig2nkq','INT',0)
    1358              : 
    1359        29986 :  intarr(1,:)=dtsets(:)%gethaydock
    1360         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gethaydock','INT',0)
    1361              : 
    1362        29754 :  if (any(dtsets(:)%usekden==1)) then
    1363          412 :    intarr(1,:)=dtsets(:)%getkden
    1364           84 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getkden','INT',0)
    1365              :  end if
    1366              : 
    1367        29986 :  intarr(1,:)=dtsets(:)%getocc
    1368         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getocc','INT',0)
    1369              : 
    1370        29986 :  intarr(1,:)=dtsets(:)%getpawden
    1371         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getpawden','INT',0)
    1372              : 
    1373        29986 :  intarr(1,:)=dtsets(:)%getqps
    1374         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getqps','INT',0)
    1375              : 
    1376        29986 :  intarr(1,:)=dtsets(:)%getscr
    1377         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getscr','INT',0)
    1378              : 
    1379        29986 :  intarr(1,:)=dtsets(:)%getself
    1380         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getself','INT',0)
    1381              : 
    1382        29986 :  intarr(1,:)=dtsets(:)%getsuscep
    1383         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getsuscep','INT',0)
    1384              : 
    1385        29986 :  intarr(1,:)=dtsets(:)%getvpq
    1386         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getvpq','INT',0)
    1387              : 
    1388        29986 :  intarr(1,:)=dtsets(:)%getvel
    1389         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getvel','INT',0)
    1390              : 
    1391        29986 :  intarr(1,:)=dtsets(:)%getwfk
    1392         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getwfk','INT',0)
    1393              : 
    1394        29986 :  intarr(1,:)=dtsets(:)%getwfkfine
    1395         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getwfkfine','INT',0)
    1396              : 
    1397        29986 :  intarr(1,:)=dtsets(:)%getwfmq
    1398         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getwfmq','INT',0)
    1399              : 
    1400        29986 :  intarr(1,:)=dtsets(:)%getwfq
    1401         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getwfq','INT',0)
    1402              : 
    1403        29986 :  intarr(1,:)=dtsets(:)%getxcart
    1404         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getxcart','INT',0)
    1405              : 
    1406        29986 :  intarr(1,:)=dtsets(:)%getxred
    1407         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'getxred','INT',0)
    1408              : 
    1409        29986 :  intarr(1,:)=dtsets(:)%get1den
    1410         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'get1den','INT',0)
    1411              : 
    1412        29986 :  intarr(1,:)=dtsets(:)%get1wf
    1413         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'get1wf','INT',0)
    1414              :  
    1415        29986 :  dprarr(1,:)=dtsets(:)%ggtrcut
    1416         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'ggtrcut','DPR',0)
    1417              : 
    1418        29986 :  intarr(1,:)=dtsets(:)%goprecon
    1419         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'goprecon','INT',0)
    1420              : 
    1421        29986 :  dprarr(1,:)=dtsets(:)%goprecprm(1)
    1422        29986 :  dprarr(2,:)=dtsets(:)%goprecprm(2)
    1423        29986 :  dprarr(3,:)=dtsets(:)%goprecprm(3)
    1424         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'goprecprm','DPR',0)
    1425              : 
    1426        29986 :  if (any(dtsets(:)%gpu_option/=ABI_GPU_DISABLED)) then
    1427              : 
    1428            0 :    do ii=1,12; intarr(ii,:)=dtsets(:)%gpu_devices(ii); end do
    1429            0 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,12,narrm,ncid,ndtset_alloc,'gpu_devices','INT',0,firstchar=firstchar_gpu)
    1430              : 
    1431            0 :    intarr(1,:)=dtsets(:)%gpu_nfft_blocks
    1432            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_nfft_blocks','INT',0,firstchar=firstchar_gpu)
    1433              : 
    1434            0 :    intarr(1,:)=dtsets(:)%gpu_linalg_limit
    1435            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_linalg_limit','INT',0)
    1436              : 
    1437            0 :    intarr(1,:)=dtsets(:)%gpu_nl_distrib
    1438            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_nl_distrib','INT',0,firstchar=firstchar_gpu)
    1439              : 
    1440            0 :    intarr(1,:)=dtsets(:)%gpu_nl_splitsize
    1441            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_nl_splitsize','INT',0,firstchar=firstchar_gpu)
    1442              : 
    1443            0 :    intarr(1,:)=dtsets(:)%gpu_option
    1444            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_option','INT',0,firstchar=firstchar_gpu)
    1445              : 
    1446            0 :    intarr(1,:)=dtsets(:)%gpu_thread_limit
    1447            0 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_thread_limit','INT',0,firstchar=firstchar_gpu)
    1448              : 
    1449            0 :    if (any(dtsets(:)%gpu_option/=ABI_GPU_KOKKOS)) then
    1450            0 :      intarr(1,:)=dtsets(:)%gpu_kokkos_nthrd
    1451            0 :      call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gpu_kokkos_nthrd','INT',0,firstchar=firstchar_gpu)
    1452              :    end if
    1453              : 
    1454              :  end if
    1455              : 
    1456        29986 :  intarr(1,:)  =dtsets(:)%gstore_with_vk
    1457         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'gstore_with_vk','INT',0)
    1458              : 
    1459        29986 :  intarr(1,:)  =dtsets(:)%gstore_iv1p_comm
    1460         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'gstore_iv1p_comm','INT',0)
    1461              : 
    1462        29986 :  intarr(1,:)  =dtsets(:)%gstore_use_lgk
    1463         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'gstore_use_lgk','INT',0)
    1464              : 
    1465        29986 :  intarr(1,:)  =dtsets(:)%gstore_use_lgq
    1466         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'gstore_use_lgq','INT',0)
    1467              : 
    1468              :  !intarr(1,:)  =dtsets(:)%gstore_brange(1,1)
    1469              :  !intarr(2,:)  =dtsets(:)%gstore_brange(2,1)
    1470              :  !intarr(3,:)  =dtsets(:)%gstore_brange(1,2)
    1471              :  !intarr(4,:)  =dtsets(:)%gstore_brange(2,2)
    1472              :  !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'gstore_brange','INT',0)
    1473              : 
    1474              :  !dprarr(1,:)  =dtsets(:)%gstore_erange(1,1)
    1475              :  !dprarr(2,:)  =dtsets(:)%gstore_erange(2,1)
    1476              :  !dprarr(3,:)  =dtsets(:)%gstore_erange(1,2)
    1477              :  !dprarr(4,:)  =dtsets(:)%gstore_erange(2,2)
    1478              :  !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'gstore_erange','ENE',0)
    1479              : 
    1480        29986 :  dprarr(1,:)=dtsets(:)%gw_rcut
    1481         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'gw_rcut','LEN',0)
    1482              : 
    1483        29986 :  dprarr(1,:) = dtsets(:)%gwr_boxcutmin
    1484         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 1, marr, narr, narrm, ncid, ndtset_alloc, 'gwr_boxcutmin', 'DPR', 0)
    1485              : 
    1486        29986 :  dprarr(1,:) = dtsets(:)%gwr_max_hwtene
    1487         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 1, marr, narr, narrm, ncid, ndtset_alloc, 'gwr_max_hwtene', 'ENE', 0)
    1488              : 
    1489        29986 :  dprarr(1,:) = dtsets(:)%gwr_regterm
    1490         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 1, marr, narr, narrm, ncid, ndtset_alloc, 'gwr_regterm', 'DPR', 0)
    1491              : 
    1492         4524 :  narr = size(dtsets(0)%gwr_np_kgts)
    1493        29986 :  do idtset=0,ndtset_alloc
    1494       131834 :    intarr(1:narr,idtset) = dtsets(idtset)%gwr_np_kgts
    1495              :  end do
    1496         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'gwr_np_kgts','INT',0, firstchar="-")
    1497              : 
    1498         4524 :  narr = size(dtsets(0)%gwr_ucsc_batch)
    1499        29986 :  do idtset=0,ndtset_alloc
    1500        80910 :    intarr(1:narr,idtset) = dtsets(idtset)%gwr_ucsc_batch
    1501              :  end do
    1502         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'gwr_ucsc_batch','INT',0, firstchar="-")
    1503              : 
    1504        29986 :  intarr(1,:) = dtsets(:)%gwr_ntau
    1505         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 2, marr, 1, narrm, ncid, ndtset_alloc, 'gwr_ntau', 'INT', 0)
    1506              : 
    1507        29986 :  intarr(1,:) = dtsets(:)%gwr_chi_algo
    1508         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 2, marr, 1, narrm, ncid, ndtset_alloc, 'gwr_chi_algo', 'INT', 0)
    1509        29986 :  intarr(1,:) = dtsets(:)%gwr_sigma_algo
    1510         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 2, marr, 1, narrm, ncid, ndtset_alloc, 'gwr_sigma_algo', 'INT', 0)
    1511        29986 :  intarr(1,:) = dtsets(:)%gwr_rpa_ncut
    1512         4524 :  call prttagm(dprarr, intarr, iout, jdtset_, 2, marr, 1, narrm, ncid, ndtset_alloc, 'gwr_rpa_ncut', 'INT', 0)
    1513              : 
    1514              :  ! TODO
    1515              :  !call prttagm(dprarr, intarr, iout, jdtset_, 2, marr, 1, narrm, ncid, ndtset_alloc, 'gwr_task', 'INT', 0)
    1516              : 
    1517              : !grchrg
    1518         4524 :  print_constraint=0
    1519        25462 :  do idtset=1,ndtset_alloc
    1520        51384 :    if(any(dtsets(idtset)%constraint_kind(:)>=10))print_constraint=1
    1521              :  enddo
    1522         4524 :  if(print_constraint==1)then
    1523              : !if(any(dtsets(1:ndtset_alloc)%constraint_kind(:)>=10))then
    1524           28 :    if(choice==2)then
    1525          182 :      prtimg(:,:)=1
    1526           98 :      do idtset=0,ndtset_alloc       ! specific size for each dataset
    1527           84 :        compute_static_images=(dtsets(idtset)%istatimg>0)
    1528           84 :        size2=dtsets(idtset)%natom
    1529           84 :        if(idtset==0)size2=0
    1530           84 :        narrm(idtset)=size2
    1531           98 :        if(dtsets(idtset)%iscf>=0 .or. idtset==0)then
    1532          168 :          do iimage=1,dtsets(idtset)%nimage
    1533           84 :            if (narrm(idtset)>0) then
    1534              : !            Note the minus sign, because chrgat is the ziontypat minus the electronic charge
    1535              :              dprarr_images(1:narrm(idtset),iimage,idtset)=&
    1536          210 : &             -results_out(idtset)%intgres(1,1:size2,iimage)
    1537              :            end if
    1538          168 :            if(.not.(dtsets(idtset)%dynimage(iimage)==1.or.compute_static_images))then
    1539            0 :              prtimg(iimage,idtset)=0
    1540              :            end if
    1541              :          end do
    1542              :        else
    1543            0 :          narrm(idtset)=0
    1544              :        end if
    1545              :      end do
    1546              : !    This is a trick to force printing of fcart even if zero, still not destroying the value of nimagem(0).
    1547           14 :      tmpimg0=nimagem(0)
    1548           14 :      nimagem(0)=0
    1549              :      call prttagm_images(dprarr_images,iout,jdtset_,1,marr,narrm,ncid,ndtset_alloc,'grchrg','DPR',&
    1550           14 :        mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1551           14 :      nimagem(0)=tmpimg0
    1552              :    end if
    1553              :  endif
    1554              : 
    1555              : !grspin
    1556         4524 :  print_constraint=0
    1557        25462 :  do idtset=1,ndtset_alloc
    1558        51264 :    if(any(mod(dtsets(idtset)%constraint_kind(:),10)>0))print_constraint=1
    1559              :  enddo
    1560         4524 :  if(print_constraint==1)then
    1561              : !if(any(mod(dtsets(1:ndtset_alloc)%constraint_kind(:),10)/=0))then
    1562           40 :    if(choice==2)then
    1563          268 :      prtimg(:,:)=1
    1564          144 :      do idtset=0,ndtset_alloc       ! specific size for each dataset
    1565          124 :        compute_static_images=(dtsets(idtset)%istatimg>0)
    1566          124 :        size2=dtsets(idtset)%natom
    1567          124 :        if(idtset==0)size2=0
    1568          124 :        narrm(idtset)=3*size2
    1569          144 :        if(dtsets(idtset)%iscf>=0 .or. idtset==0)then
    1570          248 :          do iimage=1,dtsets(idtset)%nimage
    1571          124 :            if (narrm(idtset)>0) then
    1572              :              dprarr_images(1:narrm(idtset),iimage,idtset)=&
    1573          208 : &             reshape(results_out(idtset)%intgres(2:4,1:size2,iimage),(/ narrm(idtset) /) )
    1574              :            end if
    1575          248 :            if(.not.(dtsets(idtset)%dynimage(iimage)==1.or.compute_static_images))then
    1576            0 :              prtimg(iimage,idtset)=0
    1577              :            end if
    1578              :          end do
    1579              :        else
    1580            0 :          narrm(idtset)=0
    1581              :        end if
    1582              :      end do
    1583              : !    This is a trick to force printing of fcart even if zero, still not destroying the value of nimagem(0).
    1584           20 :      tmpimg0=nimagem(0)
    1585           20 :      nimagem(0)=0
    1586              :      call prttagm_images(dprarr_images,iout,jdtset_,2,marr,narrm,ncid,ndtset_alloc,'grspin','DPR',&
    1587           20 :        mxvals%nimage,nimagem,ndtset,prtimg,strimg)
    1588           20 :      nimagem(0)=tmpimg0
    1589              :    end if
    1590              :  endif
    1591              : 
    1592        29986 :  intarr(1,:)=dtsets(:)%gwaclowrank
    1593         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwaclowrank','INT',0)
    1594              : 
    1595        29986 :  intarr(1,:)=dtsets(:)%gwcalctyp
    1596         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwcalctyp','INT',0)
    1597              : 
    1598        29986 :  intarr(1,:)=dtsets(:)%gw1rdm
    1599         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw1rdm','INT',0)
    1600              : 
    1601              : 
    1602        29986 :  intarr(1,:)=dtsets(:)%gwcomp
    1603         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwcomp','INT',0)
    1604              : 
    1605        29986 :  dprarr(1,:)=dtsets(:)%gwencomp
    1606         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwencomp','ENE',0)
    1607              : 
    1608        29986 :  intarr(1,:)=dtsets(:)%gwgamma
    1609         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwgamma','INT',0)
    1610              : 
    1611        29986 :  intarr(1,:)=dtsets(:)%gwpt_wmode
    1612         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwpt_wmode','INT',0)
    1613              : 
    1614        29986 :  intarr(1,:)=dtsets(:)%gwpt_g2mode
    1615         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwpt_g2mode','INT',0)
    1616              : 
    1617        29986 :  intarr(1,:)=dtsets(:)%gwmem
    1618         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwmem','INT',0)
    1619              : 
    1620        29986 :  intarr(1,:)=dtsets(:)%gwpara
    1621         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwpara','INT',0, firstchar="-")
    1622              : 
    1623        29986 :  intarr(1,:)=dtsets(:)%gwrpacorr
    1624         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwrpacorr','INT',0)
    1625              : 
    1626        29986 :  intarr(1,:)=dtsets(:)%gwgmcorr
    1627         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwgmcorr','INT',0)
    1628              : 
    1629              : !gw_customnfreqsp
    1630              : !It actually overrides the content of nfreqsp (which is forbidden !) in dtset.
    1631              : !This is to be cleaned ...
    1632        29962 :  if (ANY(dtsets(:)%gw_customnfreqsp/=0)) then
    1633           80 :    intarr(1,:)=dtsets(:)%gw_customnfreqsp
    1634           12 :    call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_customnfreqsp','INT',0)
    1635              :  end if
    1636              : 
    1637              : !gw_freqsp
    1638              : !This is to be cleaned ... See above ...
    1639         4524 :  narr=mxvals%nfreqsp ! default size for all datasets
    1640        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1641        25698 :    dprarr(1:narr,idtset)=zero
    1642        25462 :    narrm(idtset)=dtsets(idtset)%gw_customnfreqsp
    1643        25462 :    if(idtset==0)narrm(idtset)=mxvals%nfreqsp
    1644        29986 :    if (narrm(idtset)>0) then
    1645          120 :      dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%gw_freqsp(1:narrm(idtset))
    1646              :    end if
    1647              :  end do
    1648         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,6,marr,narr,narrm,ncid,ndtset_alloc,'gw_freqsp','ENE',multivals%nfreqsp)
    1649              : 
    1650        29986 :  intarr(1,:)=dtsets(:)%gw_frqim_inzgrid
    1651         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_frqim_inzgrid','INT',0)
    1652              : 
    1653        29986 :  intarr(1,:)=dtsets(:)%gw_frqre_inzgrid
    1654         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_frqre_inzgrid','INT',0)
    1655              : 
    1656        29986 :  intarr(1,:)=dtsets(:)%gw_frqre_tangrid
    1657         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_frqre_tangrid','INT',0)
    1658              : 
    1659              : 
    1660        29986 :  intarr(1,:)=dtsets(:)%gw_invalid_freq
    1661         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_invalid_freq','INT',0)
    1662              : 
    1663        29986 :  intarr(1,:)=dtsets(:)%gw_qprange
    1664         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_qprange','INT',0)
    1665              : 
    1666        29986 :  intarr(1,:)=dtsets(:)%gw_nqlwl
    1667         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_nqlwl','INT',0)
    1668              : 
    1669        29986 :  intarr(1,:)=dtsets(:)%gwr_nstep
    1670         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwr_nstep','INT',0)
    1671              : 
    1672        29986 :  intarr(1,:)=dtsets(:)%gwr_fit
    1673         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gwr_fit','INT',0)
    1674              : 
    1675              : !gw_qlwl
    1676         4524 :  narr=3*dtsets(1)%gw_nqlwl ! default size for all datasets
    1677        29986 :  do idtset=0,ndtset_alloc       ! specific size for each dataset
    1678        29986 :    if(idtset/=0)then
    1679        20938 :      narrm(idtset)=3*dtsets(idtset)%gw_nqlwl
    1680        20938 :      if (narrm(idtset)>0)then
    1681              :        dprarr(1:narrm(idtset),idtset)=&
    1682            8 : &       reshape(dtsets(idtset)%gw_qlwl(1:3,1:dtsets(idtset)%gw_nqlwl),(/ narrm(idtset) /) )
    1683              :      end if
    1684              :    else
    1685         4524 :      narrm(idtset)=3*mxvals%gw_nqlwl
    1686         4524 :      if (narrm(idtset)>0)then
    1687           16 :        dprarr(1:narrm(idtset),idtset)=zero
    1688           16 :        dprarr(1:3,idtset)=(/0.00001_dp, 0.00002_dp, 0.00003_dp/)
    1689              :      end if
    1690              :    end if
    1691              :  end do
    1692              : 
    1693         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'gw_qlwl','DPR',multivals%gw_nqlwl)
    1694              : 
    1695        29986 :  intarr(1,:)=dtsets(:)%gw_sigxcore
    1696         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_sigxcore','INT',0)
    1697              : 
    1698        29986 :  intarr(1,:)=dtsets(:)%gw_icutcoul
    1699         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'gw_icutcoul','INT',0)
    1700              : 
    1701        29986 :  dprarr(1,:)=dtsets(:)%gwr_tolqpe
    1702         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'gwr_tolqpe','ENE',0)
    1703              : 
    1704              : 
    1705              : !###########################################################
    1706              : !### 03. Print all the input variables (H)
    1707              : !##
    1708              : 
    1709        29986 :  intarr(1,:)=dtsets(:)%hmcsst
    1710         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'hmcsst','INT',0)
    1711              : 
    1712        29986 :  intarr(1,:)=dtsets(:)%hmctt
    1713         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'hmctt','INT',0)
    1714              : 
    1715              : !hspinfield
    1716        29986 :  dprarr(1,:)=dtsets(:)%hspinfield_in(1)
    1717        29986 :  dprarr(2,:)=dtsets(:)%hspinfield_in(2)
    1718        29986 :  dprarr(3,:)=dtsets(:)%hspinfield_in(3)
    1719         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'hspinfield','BFI',0)
    1720              : 
    1721              : !hspinfield_cart
    1722         4524 :  nontrivial_spinaxis=.false.
    1723        25458 :  do idtset=1,ndtset_alloc
    1724        62806 :    if (any(abs(dtsets(idtset)%spinaxis(1:2)) > tol8) .or. &
    1725         4520 :        abs(dtsets(idtset)%spinaxis(3) - 1.0_dp) > tol8) then
    1726              :      nontrivial_spinaxis=.true.
    1727              :      exit
    1728              :    end if
    1729              :  end do
    1730         4524 :  if (nontrivial_spinaxis) then
    1731           16 :    dprarr(1,:) = dtsets(:)%hspinfield_cart(1)
    1732           16 :    dprarr(2,:) = dtsets(:)%hspinfield_cart(2)
    1733           16 :    dprarr(3,:) = dtsets(:)%hspinfield_cart(3)
    1734            4 :    call prttagm(dprarr,intarr,iout,jdtset_,1,marr,3,narrm,ncid,ndtset_alloc,'hspinfield_cart','BFI',0)
    1735              :  end if
    1736              : 
    1737        29986 :  intarr(1,:)=dtsets(:)%extfpmd_nbcut
    1738         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'extfpmd_nbcut','INT',0)
    1739              : 
    1740        29986 :  intarr(1,:)=dtsets(:)%extfpmd_nbdbuf
    1741         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'extfpmd_nbdbuf','INT',0)
    1742              : 
    1743        29986 :  intarr(1,:)=dtsets(:)%extfpmd_nband
    1744         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'extfpmd_nband','INT',0)
    1745              : 
    1746        29986 :  intarr(1,:)=dtsets(:)%extfpmd_pawsph
    1747         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'extfpmd_pawsph','INT',0)
    1748              : 
    1749        29986 :  intarr(1,:)=dtsets(:)%extfpmd_prterr
    1750         4524 :  call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'extfpmd_prterr','INT',0)
    1751              : 
    1752              : !Special treatment of the default values for the hybrid functional parameters.
    1753        22620 :  do ii=1,4
    1754        48082 :    if(ii==1)dprarr(1,:)=dtsets(:)%hyb_mixing
    1755        48082 :    if(ii==2)dprarr(1,:)=dtsets(:)%hyb_mixing_sr
    1756        48082 :    if(ii==3)dprarr(1,:)=dtsets(:)%hyb_range_dft
    1757        48082 :    if(ii==4)dprarr(1,:)=dtsets(:)%hyb_range_fock
    1758        18096 :    defo=1
    1759       101848 :    do idtset=1,ndtset_alloc
    1760       185428 :      if(dprarr(1,idtset)<-tol8 .and. abs(dprarr(1,idtset)+999.0_dp)>tol8)defo=0
    1761              :    end do
    1762        22620 :    if(defo==0)then
    1763          868 :      do idtset=1,ndtset_alloc
    1764              : !      Change the sign of user defined input value
    1765          868 :        if(dprarr(1,idtset)<-tol8 .and. abs(dprarr(1,idtset)+999.0_dp)>tol8)then
    1766          172 :          dprarr(1,idtset)=abs(dprarr(1,idtset))
    1767              :        end if
    1768              :      end do
    1769           40 :      if(ii==1)str_hyb='hyb_mixing'
    1770           40 :      if(ii==2)str_hyb='hyb_mixing_sr'
    1771           40 :      if(ii==3)str_hyb='hyb_range_dft'
    1772           40 :      if(ii==4)str_hyb='hyb_range_fock'
    1773           40 :      call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,str_hyb,'DPR',0)
    1774              :    end if
    1775              :  end do
    1776              : 
    1777              : !###########################################################
    1778              : !## Deallocation for generic arrays, and for n-z variables
    1779              : 
    1780         4524 :  ABI_FREE(dprarr)
    1781         4524 :  ABI_FREE(intarr)
    1782         4524 :  ABI_FREE(narrm)
    1783         4524 :  ABI_FREE(nimagem)
    1784         4524 :  ABI_FREE(dprarr_images)
    1785         4524 :  ABI_FREE(prtimg)
    1786              : 
    1787         4524 : end subroutine outvar_a_h
    1788              : !!***
    1789              : 
    1790              : end module m_outvar_a_h
    1791              : !!***
        

Generated by: LCOV version 2.3-1