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