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