Line data Source code
1 : !!****m* ABINIT/m_outvar_i_n
2 : !! NAME
3 : !! m_outvar_i_n
4 : !!
5 : !! FUNCTION
6 : !!
7 : !! COPYRIGHT
8 : !! Copyright (C) 1998-2026 ABINIT group (DCA, XG, GMR, MM)
9 : !! This file is distributed under the terms of the
10 : !! GNU General Public License, see ~abinit/COPYING
11 : !! or http://www.gnu.org/copyleft/gpl.txt .
12 : !!
13 : !! SOURCE
14 :
15 : #if defined HAVE_CONFIG_H
16 : #include "config.h"
17 : #endif
18 :
19 : #include "abi_common.h"
20 :
21 : module m_outvar_i_n
22 :
23 : use defs_basis
24 : use m_errors
25 : use m_abicore
26 : use m_errors
27 : use m_results_out
28 : use m_errors
29 : use m_dtset
30 :
31 : use m_parser, only : prttagm, prttagm_images, ab_dimensions
32 :
33 : implicit none
34 :
35 : private
36 : !!***
37 :
38 : public :: outvar_i_n
39 : !!***
40 :
41 : contains
42 : !!***
43 :
44 : !!****f* ABINIT/outvar_i_n
45 : !! NAME
46 : !! outvar_i_n
47 : !!
48 : !! FUNCTION
49 : !! Echo variables between acell and natom (by alphabetic order) for the ABINIT code.
50 : !!
51 : !! INPUTS
52 : !! dtsets(0:ndtset_alloc)=<type datafiles_type>contains all input variables
53 : !! iout=unit number for echoed output
54 : !! jdtset_(0:ndtset_alloc)=actual index of the dataset (equal to dtsets(:)%jdtset)
55 : !! marr=maximum number of numbers in an array (might need to be increased ... !)
56 : !! multivals= <type ab_dimensions> either 0 or 1 , depending whether the
57 : !! dimension has different values for different datasets
58 : !! mxvals= <type ab_dimensions>
59 : !! maximum size of some arrays along all datasets, including
60 : !! lpawu =maximal value of input lpawu for all the datasets
61 : !! gw_nqlwl =maximal value of input gw_nqlwl for all the datasets
62 : !! mband =maximum number of bands
63 : !! natom =maximal value of input natom for all the datasets
64 : !! natpawu =maximal value of number of atoms on which +U is applied for all the datasets
65 : !! natsph =maximal value of input natsph for all the datasets
66 : !! natvshift =maximal value of input natvshift for all the datasets
67 : !! nconeq =maximal value of input nconeq for all the datasets
68 : !! nimage =maximal value of input nimage for all the datasets
69 : !! nkptgw =maximal value of input nkptgw for all the datasets
70 : !! nkpthf =maximal value of input nkpthf for all the datasets
71 : !! nkpt =maximal value of input nkpt for all the datasets
72 : !! nnos =maximal value of input nnos for all the datasets
73 : !! nqptdm =maximal value of input nqptdm for all the datasets
74 : !! nspinor =maximal value of input nspinor for all the datasets
75 : !! nsppol =maximal value of input nsppol for all the datasets
76 : !! nsym =maximum number of symmetries
77 : !! ntypat =maximum number of type of atoms
78 : !! nzchempot =maximal value of input nzchempot for all the datasets
79 : !! ndtset=number of datasets
80 : !! ndtset_alloc=number of datasets, corrected for allocation of at least
81 : !! one data set. Use for most dimensioned arrays.
82 : !! npsp=number of pseudopotentials
83 : !! nqptdm=the number of q vectors provided by the user to calculate DM in GW
84 : !! prtvol_glob= if 0, minimal output volume, if 1, no restriction.
85 : !! response_(0:ndtset_alloc)= 1 if response variables must be output, 0 otherwise,
86 : !! for different datasets
87 : !! results_out(0:ndtset_alloc)=<type results_out_type>contains the results
88 : !! needed for outvars, including evolving variables
89 : !!
90 : !! OUTPUT
91 : !!
92 : !! NOTES
93 : !! Note that this routine is called only by the processor me==0 .
94 : !! In consequence, no use of message and wrtout routine.
95 : !! The lines of code needed to output the defaults are preserved
96 : !! (see last section of the routine, but are presently disabled)
97 : !!
98 : !! SOURCE
99 :
100 4524 : subroutine outvar_i_n (dtsets,iout,&
101 4524 : & jdtset_,marr,multivals,mxvals,ncid,ndtset,ndtset_alloc,npsp,prtvol_glob,&
102 4524 : & response_,results_out,strimg)
103 :
104 : !Arguments ------------------------------------
105 : !scalars
106 : integer,intent(in) :: iout,marr,ndtset
107 : integer,intent(in) :: ndtset_alloc,prtvol_glob,ncid,npsp
108 : !arrays
109 : integer,intent(in) :: jdtset_(0:ndtset_alloc),response_(ndtset_alloc)
110 : type(ab_dimensions),intent(in) :: multivals,mxvals
111 : type(dataset_type),intent(in) :: dtsets(0:ndtset_alloc)
112 : type(results_out_type),intent(in) :: results_out(0:ndtset_alloc)
113 : character(len=8),intent(in) :: strimg(mxvals%nimage)
114 :
115 : !Local variables-------------------------------
116 : !scalars
117 : integer,parameter :: nkpt_max=50
118 : integer :: allowed,allowed_sum,iatom,idtset,ii,iimage,ikpt,kptopt,narr
119 : integer :: multival,multi_natfix,multi_natfixx,multi_natfixy,multi_natfixz
120 : integer :: multi_atsph,multi_occopt
121 : integer :: natfix,natfixx,natfixy,natfixz,natnd,natom
122 : integer :: ndtset_kptopt,nimage,nqpt,nkpt_eff
123 : integer :: ntypalch,ntypat,size1,size2,test_write,tnkpt
124 : real(dp) :: kpoint
125 : character(len=1) :: firstchar_gpu
126 : !arrays
127 4524 : integer,allocatable :: iatfixio_(:,:),iatfixx_(:,:),iatfixy_(:,:)
128 4524 : integer,allocatable :: iatfixz_(:,:),intarr(:,:),istwfk_2(:,:)
129 4524 : integer,allocatable :: jdtset_kptopt(:),natfix_(:),natfixx_(:),natfixy_(:)
130 4524 : integer,allocatable :: natfixz_(:)
131 4524 : integer,allocatable :: narrm(:)
132 4524 : integer,allocatable :: nimagem(:),prtimg(:,:)
133 4524 : real(dp),allocatable :: dprarr(:,:),dprarr_images(:,:,:)
134 :
135 : ! *************************************************************************
136 :
137 : !###########################################################
138 : !### 01. Initial allocations and initialisations.
139 :
140 : DBG_ENTER("COLL")
141 :
142 18096 : ABI_MALLOC(dprarr,(marr,0:ndtset_alloc))
143 22620 : ABI_MALLOC(dprarr_images,(marr,mxvals%nimage,0:ndtset_alloc))
144 18096 : ABI_MALLOC(intarr,(marr,0:ndtset_alloc))
145 13572 : ABI_MALLOC(narrm,(0:ndtset_alloc))
146 9048 : ABI_MALLOC(nimagem,(0:ndtset_alloc))
147 18096 : ABI_MALLOC(prtimg,(mxvals%nimage,0:ndtset_alloc))
148 :
149 29986 : do idtset=0,ndtset_alloc
150 29986 : nimagem(idtset)=dtsets(idtset)%nimage
151 : end do
152 :
153 4524 : firstchar_gpu=' '
154 25462 : if (maxval(dtsets(1:ndtset_alloc)%gpu_option)/=ABI_GPU_DISABLED) firstchar_gpu='-'
155 :
156 : !if(multivals%natom==0)natom=dtsets(1)%natom
157 4524 : natom=dtsets(1)%natom
158 : !if(multivals%nimage==0)nimage=dtsets(1)%nimage
159 4524 : nimage=dtsets(1)%nimage
160 : !if(multivals%ntypalch==0)ntypalch=dtsets(1)%ntypalch
161 4524 : ntypalch=dtsets(1)%ntypalch
162 : !if(multivals%ntypat==0)ntypat=dtsets(1)%ntypat
163 4524 : ntypat=dtsets(1)%ntypat
164 :
165 4524 : natnd=dtsets(1)%natnd
166 :
167 : !###########################################################
168 : !### 02. Specific treatment for partially fixed atoms. Also compute multi_occopt for nband
169 :
170 : !Must treat separately the translation of iatfix from the internal
171 : !representation to the input/output representation
172 9048 : ABI_MALLOC(natfix_,(0:ndtset_alloc))
173 18096 : ABI_MALLOC(iatfixio_,(mxvals%natom,0:ndtset_alloc))
174 9048 : ABI_MALLOC(natfixx_,(0:ndtset_alloc))
175 13572 : ABI_MALLOC(iatfixx_,(mxvals%natom,0:ndtset_alloc))
176 9048 : ABI_MALLOC(natfixy_,(0:ndtset_alloc))
177 13572 : ABI_MALLOC(iatfixy_,(mxvals%natom,0:ndtset_alloc))
178 9048 : ABI_MALLOC(natfixz_,(0:ndtset_alloc))
179 13572 : ABI_MALLOC(iatfixz_,(mxvals%natom,0:ndtset_alloc))
180 199912 : natfix_(0:ndtset_alloc)=0 ; iatfixio_(:,0:ndtset_alloc)=0
181 199912 : natfixx_(0:ndtset_alloc)=0 ; iatfixx_(:,0:ndtset_alloc)=0
182 199912 : natfixy_(0:ndtset_alloc)=0 ; iatfixy_(:,0:ndtset_alloc)=0
183 199912 : natfixz_(0:ndtset_alloc)=0 ; iatfixz_(:,0:ndtset_alloc)=0
184 25462 : natfixx=-1; natfixy=-1; natfixz=-1;nimage=-1;
185 25462 : do idtset=1,ndtset_alloc
186 : ! DEBUG
187 : ! write(std_out,*)' outvar_i_n : iatfix_ for idtset= ',idtset
188 : ! ENDDEBUG
189 116622 : do iatom=1,dtsets(idtset)%natom
190 : ! First look whether the atom is fixed along the three directions
191 91160 : if( dtsets(idtset)%iatfix(1,iatom)+ &
192 : & dtsets(idtset)%iatfix(2,iatom)+ &
193 20938 : & dtsets(idtset)%iatfix(3,iatom) ==3 )then
194 344 : natfix_(idtset)=natfix_(idtset)+1
195 : ! DEBUG
196 : ! write(std_out,*)' outvar_i_n: iatom,natfix_(idtset)=',iatom,natfix_(idtset)
197 : ! ENDDEBUG
198 344 : iatfixio_(natfix_(idtset),idtset)=iatom
199 : else
200 : ! Now examine each direction, one at a time
201 90816 : if( dtsets(idtset)%iatfix(1,iatom) ==1)then
202 24 : natfixx_(idtset)=natfixx_(idtset)+1
203 24 : iatfixx_(natfixx_(idtset),idtset)=iatom
204 : end if
205 90816 : if( dtsets(idtset)%iatfix(2,iatom) ==1)then
206 24 : natfixy_(idtset)=natfixy_(idtset)+1
207 24 : iatfixy_(natfixy_(idtset),idtset)=iatom
208 : end if
209 90816 : if( dtsets(idtset)%iatfix(3,iatom) ==1)then
210 28 : natfixz_(idtset)=natfixz_(idtset)+1
211 28 : iatfixz_(natfixz_(idtset),idtset)=iatom
212 : end if
213 : end if
214 : end do
215 : ! DEBUG
216 : ! write(std_out,*)' natfix ...'
217 : ! write(std_out,*)natfix_(idtset),natfixx_(idtset),natfixy_(idtset),natfixz_(idtset)
218 : ! ENDDEBUG
219 : end do
220 :
221 4524 : multi_natfix=0
222 4524 : if(ndtset_alloc>1)then
223 22542 : do idtset=1,ndtset_alloc
224 22542 : if(natfix_(1)/=natfix_(idtset))multi_natfix=1
225 : end do
226 : end if
227 4524 : if(multi_natfix==0)natfix=natfix_(1)
228 :
229 4524 : multi_natfixx=0
230 4524 : if(ndtset_alloc>1)then
231 22542 : do idtset=1,ndtset_alloc
232 22542 : if(natfixx_(1)/=natfixx_(idtset))multi_natfixx=1
233 : end do
234 : end if
235 4524 : if(multi_natfixx==0)natfixx=natfixx_(1)
236 :
237 4524 : multi_natfixy=0
238 4524 : if(ndtset_alloc>1)then
239 22542 : do idtset=1,ndtset_alloc
240 22542 : if(natfixy_(1)/=natfixy_(idtset))multi_natfixy=1
241 : end do
242 : end if
243 4524 : if(multi_natfixy==0)natfixy=natfixy_(1)
244 :
245 4524 : multi_natfixz=0
246 4524 : if(ndtset_alloc>1)then
247 22542 : do idtset=1,ndtset_alloc
248 22542 : if(natfixz_(1)/=natfixz_(idtset))multi_natfixz=1
249 : end do
250 : end if
251 4524 : if(multi_natfixz==0)natfixz=natfixz_(1)
252 :
253 :
254 4524 : multi_occopt=0
255 4524 : if(ndtset_alloc>1)then
256 22542 : do idtset=1,ndtset_alloc
257 22542 : if(dtsets(1)%occopt/=dtsets(idtset)%occopt)multi_occopt=1
258 : end do
259 : end if
260 :
261 : !write(ab_out,*)' outvar_i_n : I '
262 : !call flush(ab_out)
263 : !###########################################################
264 : !### 03. Print all the input variables (I)
265 : !##
266 :
267 : !iatfix
268 4524 : narr=natfix ! default size for all datasets
269 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
270 25462 : narrm(idtset)=natfix_(idtset)
271 25462 : if(idtset==0)narrm(idtset)=mxvals%natom
272 45544 : intarr(1:narrm(idtset),idtset)=iatfixio_(1:narrm(idtset),idtset)
273 : end do
274 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
275 4524 : & narrm,ncid,ndtset_alloc,'iatfix','INT',multi_natfix)
276 :
277 : !iatfixx
278 4524 : narr=natfixx ! default size for all datasets
279 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
280 25462 : narrm(idtset)=natfixx_(idtset)
281 25462 : if(idtset==0)narrm(idtset)=mxvals%natom
282 45224 : intarr(1:narrm(idtset),idtset)=iatfixx_(1:narrm(idtset),idtset)
283 : end do
284 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
285 4524 : & narrm,ncid,ndtset_alloc,'iatfixx','INT',multi_natfixx)
286 :
287 : !iatfixy
288 4524 : narr=natfixy ! default size for all datasets
289 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
290 25462 : narrm(idtset)=natfixy_(idtset)
291 25462 : if(idtset==0)narrm(idtset)=mxvals%natom
292 45224 : intarr(1:narrm(idtset),idtset)=iatfixy_(1:narrm(idtset),idtset)
293 : end do
294 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
295 4524 : & narrm,ncid,ndtset_alloc,'iatfixy','INT',multi_natfixy)
296 :
297 : !iatfixz
298 4524 : narr=natfixz ! default size for all datasets
299 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
300 25462 : narrm(idtset)=natfixz_(idtset)
301 25462 : if(idtset==0)narrm(idtset)=mxvals%natom
302 45228 : intarr(1:narrm(idtset),idtset)=iatfixz_(1:narrm(idtset),idtset)
303 : end do
304 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
305 4524 : & narrm,ncid,ndtset_alloc,'iatfixz','INT',multi_natfixz)
306 :
307 : !iatnd
308 19931182 : intarr = 0
309 4524 : narr=natom ! default size for all datasets
310 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
311 25462 : narrm(idtset)=dtsets(idtset)%natnd
312 25462 : if(idtset==0)narrm(idtset)=mxvals%natom
313 45272 : intarr(1:narrm(idtset),idtset)= dtsets(idtset)%iatnd(1:narrm(idtset))
314 : end do
315 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'iatnd','INT',multivals%natom)
316 :
317 : !iatsph
318 4524 : multi_atsph=1
319 4524 : narr=dtsets(1)%natsph ! default size for all datasets
320 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
321 25462 : narrm(idtset)=dtsets(idtset)%natsph
322 25462 : if(idtset==0)narrm(idtset)=mxvals%natsph
323 : ! Need to be printed only if there is some occurrence of prtdos==3 or pawfatbnd
324 25462 : if (narrm(idtset)>0) then
325 131788 : intarr(1:narrm(idtset),idtset)=dtsets(idtset)%iatsph(1:narrm(idtset))
326 : end if
327 29986 : if(dtsets(idtset)%prtdos==3.or.dtsets(idtset)%pawfatbnd>0)then
328 84 : narrm(idtset)=dtsets(idtset)%natsph
329 : else
330 25378 : narrm(idtset)=0
331 : end if
332 : end do
333 25462 : if (ndtset_alloc==1.and.sum(narrm(1:ndtset_alloc))==1) multi_atsph=0
334 :
335 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,&
336 4524 : narrm,ncid,ndtset_alloc,'iatsph','INT',multi_atsph) ! Emulating the case of multiple narr
337 :
338 29986 : dprarr(1,:)=dtsets(:)%ibte_abs_tol
339 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ibte_abs_tol','DPR',0)
340 :
341 29986 : dprarr(1,:)=dtsets(:)%ibte_alpha_mix
342 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ibte_alpha_mix','DPR',0)
343 :
344 29986 : intarr(1,:)=dtsets(:)%ibte_niter
345 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ibte_niter','INT',0)
346 :
347 29986 : intarr(1,:)=dtsets(:)%ibte_prep
348 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ibte_prep','INT',0)
349 :
350 29986 : intarr(1,:)=dtsets(:)%iboxcut
351 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'iboxcut','INT',0)
352 :
353 29986 : intarr(1,:)=dtsets(:)%icoulomb
354 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'icoulomb','INT',0)
355 :
356 29986 : intarr(1,:)=dtsets(:)%icutcoul
357 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'icutcoul','INT',0)
358 :
359 29986 : intarr(1,:)=dtsets(:)%ieig2rf
360 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ieig2rf','INT',0)
361 :
362 29986 : intarr(1,:)=dtsets(:)%imgmov
363 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'imgmov','INT',0)
364 :
365 29986 : intarr(1,:)=dtsets(:)%imgwfstor
366 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'imgwfstor','INT',0)
367 :
368 29986 : intarr(1,:)=dtsets(:)%inclvkb
369 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'inclvkb','INT',0)
370 :
371 29986 : intarr(1,:)=dtsets(:)%intxc
372 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'intxc','INT',0)
373 :
374 29986 : intarr(1,:)=dtsets(:)%invovl_blksliced
375 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'invovl_blksliced',&
376 4524 : & 'INT',0,firstchar=firstchar_gpu)
377 :
378 29986 : intarr(1,:)=dtsets(:)%ionmov
379 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ionmov','INT',0)
380 :
381 29986 : intarr(1,:)=dtsets(:)%iprcel
382 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'iprcel','INT',0)
383 :
384 29986 : intarr(1,:)=dtsets(:)%iprcfc
385 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'iprcfc','INT',0)
386 :
387 29986 : intarr(1,:)=dtsets(:)%irandom
388 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irandom','INT',0)
389 :
390 29986 : intarr(1,:)=dtsets(:)%irdbscoup
391 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdbscoup','INT',0)
392 :
393 29986 : intarr(1,:)=dtsets(:)%irdbseig
394 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdbseig','INT',0)
395 :
396 29986 : intarr(1,:)=dtsets(:)%irdbsreso
397 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdbsreso','INT',0)
398 :
399 29986 : intarr(1,:)=dtsets(:)%irdchkprdm
400 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdchkprdm','INT',0)
401 :
402 29986 : intarr(1,:)=dtsets(:)%irdddk
403 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdddk','INT',0)
404 :
405 29986 : intarr(1,:)=dtsets(:)%irddelfd
406 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irddelfd','INT',0)
407 :
408 29986 : intarr(1,:)=dtsets(:)%irddkdk
409 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irddkdk','INT',0)
410 :
411 29986 : intarr(1,:)=dtsets(:)%irddkde
412 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irddkde','INT',0)
413 :
414 29986 : intarr(1,:)=dtsets(:)%irdden
415 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdden','INT',0)
416 :
417 29986 : intarr(1,:)=dtsets(:)%irddvdb
418 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irddvdb','INT',0)
419 :
420 29986 : intarr(1,:)=dtsets(:)%irdefmas
421 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdefmas','INT',0)
422 :
423 29986 : intarr(1,:)=dtsets(:)%irdhaydock
424 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdhaydock','INT',0)
425 :
426 29754 : if (any(dtsets(:)%usekden==1)) then
427 412 : intarr(1,:)=dtsets(:)%irdkden
428 84 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdkden','INT',0)
429 : end if
430 :
431 29986 : intarr(1,:)=dtsets(:)%irdpawden
432 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdpawden','INT',0)
433 :
434 29986 : intarr(1,:)=dtsets(:)%irdqps
435 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdqps','INT',0)
436 :
437 29986 : intarr(1,:)=dtsets(:)%irdscr
438 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdscr','INT',0)
439 :
440 29986 : intarr(1,:)=dtsets(:)%irdsuscep
441 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdsuscep','INT',0)
442 :
443 29986 : intarr(1,:)=dtsets(:)%irdvdw
444 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdvdw','INT',0)
445 :
446 29986 : intarr(1,:)=dtsets(:)%irdwfk
447 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdwfk','INT',0)
448 :
449 29986 : intarr(1,:)=dtsets(:)%irdwfkfine
450 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdwfkfine','INT',0)
451 :
452 29986 : intarr(1,:)=dtsets(:)%irdwfmq
453 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdwfmq','INT',0)
454 :
455 29986 : intarr(1,:)=dtsets(:)%irdwfq
456 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'irdwfq','INT',0)
457 :
458 29986 : intarr(1,:)=dtsets(:)%ird1den
459 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ird1den','INT',0)
460 :
461 29986 : intarr(1,:)=dtsets(:)%ird1wf
462 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ird1wf','INT',0)
463 :
464 29986 : intarr(1,:)=dtsets(:)%iscf
465 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'iscf','INT',0)
466 :
467 29986 : intarr(1,:)=dtsets(:)%isecur
468 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'isecur','INT',0)
469 :
470 29986 : intarr(1,:)=dtsets(:)%istatimg
471 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'istatimg','INT',0)
472 :
473 29986 : intarr(1,:)=dtsets(:)%istatr
474 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'istatr','INT',0)
475 :
476 29986 : intarr(1,:)=dtsets(:)%istatshft
477 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'istatshft','INT',0)
478 :
479 4524 : if (allocated(dtsets(0)%istwfk)) then
480 : ! istwfk (must first restore the default istwf=0 for non-allowed k points)
481 17744 : ABI_MALLOC(istwfk_2,(mxvals%nkpt,0:ndtset_alloc))
482 694170 : istwfk_2=0;allowed_sum=0
483 25116 : do idtset=1,ndtset_alloc
484 20680 : nqpt=dtsets(idtset)%nqpt
485 376362 : do ikpt=1,dtsets(idtset)%nkpt
486 : allowed=1
487 1404984 : do ii=1,3
488 1053738 : kpoint=dtsets(idtset)%kpt(ii,ikpt)/dtsets(idtset)%kptnrm
489 1053738 : if(nqpt/=0.and.response_(idtset)==0)kpoint=kpoint+dtsets(idtset)%qptn(ii)
490 1725406 : if(abs(kpoint)>1.d-10.and.abs(kpoint-0.5_dp)>1.e-10_dp )allowed=0
491 : end do
492 : allowed_sum=allowed_sum+allowed
493 371926 : if(allowed==1)istwfk_2(ikpt,idtset)=dtsets(idtset)%istwfk(ikpt)
494 : end do
495 : end do
496 :
497 : !istwfk
498 29552 : tnkpt=0
499 18541688 : intarr(1:marr,0:ndtset_alloc)=0 ! default value
500 25116 : do idtset=1,ndtset_alloc
501 20680 : nkpt_eff=dtsets(idtset)%nkpt
502 20680 : if(prtvol_glob==0 .and. nkpt_eff>nkpt_max)then
503 1388 : nkpt_eff=nkpt_max
504 1388 : tnkpt=1
505 : end if
506 199346 : if((multivals%nkpt/=0).and.(sum(istwfk_2(1:nkpt_eff,idtset))==0)) nkpt_eff=0
507 20680 : narrm(idtset)=nkpt_eff
508 139546 : intarr(1:narrm(idtset),idtset)=istwfk_2(1:narrm(idtset),idtset)
509 : end do
510 :
511 4436 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,nkpt_eff,narrm,ncid,ndtset_alloc,'istwfk','INT',multivals%nkpt)
512 :
513 152048 : if(tnkpt==1 .and. sum(istwfk_2(1:nkpt_eff,1:ndtset_alloc))/=0 ) &
514 110 : write(iout,'(23x,a,i3,a)' ) 'outvar_i_n : Printing only first ',nkpt_max,' k-points.'
515 4436 : ABI_FREE(istwfk_2)
516 : end if
517 :
518 : !ivalence
519 29986 : intarr(1,:)=dtsets(:)%ivalence
520 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ivalence','INT',0)
521 :
522 : !ixc
523 29986 : intarr(1,:)=dtsets(:)%ixc
524 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ixc','INT',0)
525 :
526 : !ixcpositron
527 29986 : intarr(1,:)=dtsets(:)%ixcpositron
528 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ixcpositron','INT',0)
529 :
530 : !ixcrot
531 29986 : intarr(1,:)=dtsets(:)%ixcrot
532 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ixcrot','INT',0)
533 :
534 : !ixc_sigma
535 29986 : intarr(1,:)=dtsets(:)%ixc_sigma
536 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ixc_sigma','INT',0)
537 :
538 : !write(ab_out,*)' outvar_i_n : J '
539 : !call flush(ab_out)
540 : !###########################################################
541 : !### 03. Print all the input variables (J)
542 : !##
543 :
544 4524 : if (ndtset > 0) write(iout,"(1x,a16,1x,(t22,10i5))") 'jdtset',jdtset_(1:ndtset)
545 :
546 29986 : intarr(1,:)=dtsets(:)%jellslab
547 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'jellslab','INT',0)
548 :
549 29986 : intarr(1,:)=dtsets(:)%jfielddir(1)
550 29986 : intarr(2,:)=dtsets(:)%jfielddir(2)
551 29986 : intarr(3,:)=dtsets(:)%jfielddir(3)
552 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'jfielddir','INT',0)
553 :
554 : !jpawu
555 56668 : prtimg(:,:)=1
556 29986 : do idtset=0,ndtset_alloc
557 25462 : narrm(idtset)=dtsets(idtset)%ntypat
558 25462 : if (idtset==0) narrm(idtset)=mxvals%ntypat
559 56200 : do iimage=1,nimagem(idtset)
560 51676 : if (narrm(idtset)>0) then
561 59684 : dprarr_images(1:narrm(idtset),iimage,idtset)=dtsets(idtset)%jpawu(1:narrm(idtset),iimage)
562 : end if
563 : end do
564 : end do
565 : call prttagm_images(dprarr_images,iout,jdtset_,1,marr,narrm,&
566 4524 : & ncid,ndtset_alloc,'jpawu','ENE',mxvals%nimage,nimagem,ndtset,prtimg,strimg)
567 :
568 :
569 : !write(ab_out,*)' outvar_i_n : K '
570 : !call flush(ab_out)
571 : !###########################################################
572 : !### 03. Print all the input variables (K)
573 : !##
574 :
575 : !kberry
576 4524 : narr=3*dtsets(1)%nberry ! default size for all datasets
577 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
578 29986 : if(idtset/=0)then
579 20938 : narrm(idtset)=3*dtsets(idtset)%nberry
580 20938 : if (narrm(idtset)>0)&
581 41876 : & intarr(1:narrm(idtset),idtset)= reshape(dtsets(idtset)%kberry(1:3,1:dtsets(idtset)%nberry), [narrm(idtset)] )
582 : else
583 4524 : narrm(idtset)=3*mxvals%nberry
584 4524 : if (narrm(idtset)>0)&
585 9048 : & intarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%kberry(1:3,1:mxvals%nberry), [narrm(idtset)] )
586 : end if
587 : end do
588 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'kberry','INT',multivals%nberry)
589 :
590 : ! kpt
591 4524 : if (allocated(dtsets(0)%kpt)) then
592 4033994 : tnkpt=0
593 4033994 : dprarr(:,0)=0
594 4436 : narr=3*dtsets(1)%nkpt ! default size for all datasets
595 4436 : if(prtvol_glob==0 .and. narr>3*nkpt_max)then
596 190 : narr=3*nkpt_max
597 190 : tnkpt=1
598 : end if
599 :
600 25116 : do idtset=1,ndtset_alloc ! specific size for each dataset
601 20680 : narrm(idtset)=3*dtsets(idtset)%nkpt
602 20680 : if (narrm(idtset)>0) then
603 41360 : dprarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%kpt(1:3,1:dtsets(idtset)%nkpt), [narrm(idtset)] )
604 : end if
605 :
606 25116 : if(prtvol_glob==0 .and. narrm(idtset)>3*nkpt_max)then
607 1388 : narrm(idtset)=3*nkpt_max
608 1388 : tnkpt=1
609 : end if
610 :
611 : end do
612 4436 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr, narrm,ncid,ndtset_alloc,'kpt','DPR',multivals%nkpt)
613 4436 : if(tnkpt==1) write(iout,'(23x,a,i3,a)' ) 'outvar_i_n : Printing only first ',nkpt_max,' k-points.'
614 : end if
615 :
616 : !intarr(1,:)=dtsets(:)%kptbounds
617 : !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'kptbounds','INT',0)
618 :
619 : !kptgw
620 4524 : narr=3*dtsets(1)%nkptgw ! default size for all datasets
621 4409052 : dprarr(:,0)=zero
622 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
623 29986 : if(idtset/=0)then
624 20938 : narrm(idtset)=3*dtsets(idtset)%nkptgw
625 20938 : if (narrm(idtset)>0)&
626 1952 : & dprarr(1:narrm(idtset),idtset) = reshape(dtsets(idtset)%kptgw(1:3,1:dtsets(idtset)%nkptgw), [narrm(idtset)])
627 : else
628 4524 : narrm(idtset)=mxvals%nkptgw
629 4524 : if (narrm(idtset)>0)&
630 632 : & dprarr(1:narrm(idtset),idtset) = reshape(dtsets(idtset)%kptgw(1:3,1:mxvals%nkptgw), [narrm(idtset)] )
631 : end if
632 : end do
633 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'kptgw','DPR',multivals%nkptgw)
634 :
635 :
636 : ! kptns_hf
637 25462 : if (sum(dtsets(1:ndtset_alloc)%usefock) /=0 .and. allocated(dtsets(0)%kptns_hf)) then
638 74828 : tnkpt=0
639 74828 : dprarr(:,0)=0
640 892 : do idtset=1,ndtset_alloc ! specific size for each dataset
641 752 : if(dtsets(idtset)%usefock/=0)then
642 520 : narrm(idtset)=3*dtsets(idtset)%nkpthf
643 520 : narr=narrm(idtset)
644 520 : if (narrm(idtset)>0) then
645 1040 : dprarr(1:narrm(idtset),idtset)=reshape(dtsets(idtset)%kptns_hf(1:3,1:dtsets(idtset)%nkpthf), [narrm(idtset)] )
646 : end if
647 : else
648 232 : narrm(idtset)=0
649 : end if
650 892 : if(prtvol_glob==0 .and. narrm(idtset)>3*nkpt_max)then
651 48 : narrm(idtset)=3*nkpt_max
652 48 : narr=narrm(idtset)
653 48 : tnkpt=1
654 : end if
655 : end do
656 140 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'kptns_hf','DPR',multivals%nkpthf)
657 140 : if(tnkpt==1) write(iout,'(23x,a,i3,a)' ) 'outvar_i_n : Printing only first ',nkpt_max,' k-points.'
658 : end if
659 :
660 29986 : dprarr(1,:)=dtsets(:)%kptnrm
661 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'kptnrm','DPR',0)
662 :
663 29986 : intarr(1,:)=dtsets(:)%kptopt
664 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'kptopt','INT',0)
665 :
666 : !kptrlatt
667 25462 : if(sum((dtsets(1:ndtset_alloc)%kptopt)**2)/=0)then
668 3154 : ndtset_kptopt=0
669 3154 : intarr(1:9,0)=reshape( dtsets(0)%kptrlatt, [9] )
670 6308 : ABI_MALLOC(jdtset_kptopt,(0:ndtset_alloc))
671 : ! Define the set of datasets for which kptopt>0
672 15522 : do idtset=1,ndtset_alloc
673 12368 : kptopt=dtsets(idtset)%kptopt
674 15522 : if(kptopt>0)then
675 11476 : ndtset_kptopt=ndtset_kptopt+1
676 11476 : jdtset_kptopt(ndtset_kptopt)=jdtset_(idtset)
677 11476 : intarr(1:9,ndtset_kptopt)=reshape( dtsets(idtset)%kptrlatt , [9] )
678 : end if
679 : end do
680 3154 : if(ndtset_kptopt>0)then
681 3150 : call prttagm(dprarr,intarr,iout,jdtset_kptopt,6,marr,9,narrm,ncid,ndtset_kptopt,'kptrlatt','INT',0)
682 : end if
683 3154 : ABI_FREE(jdtset_kptopt)
684 : end if
685 :
686 29986 : dprarr(1,:)=dtsets(:)%kptrlen
687 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'kptrlen','DPR',0)
688 :
689 29986 : intarr(1,:)=dtsets(:)%kssform
690 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'kssform','INT',0)
691 :
692 : !write(ab_out,*)' outvar_i_n : L '
693 : !call flush(ab_out)
694 : !###########################################################
695 : !### 03. Print all the input variables (L)
696 : !##
697 :
698 : !lambsig
699 29986 : do idtset=0, ndtset_alloc
700 62144 : do ii = 1, ntypat
701 57620 : dprarr(ii,idtset) = dtsets(idtset)%lambsig(ii)
702 : end do ! end loop over ntypat
703 : end do ! end loop over datasets
704 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,ntypat,narrm,ncid,ndtset_alloc,'lambsig','DPR',0)
705 :
706 : !lexexch
707 4524 : narr=mxvals%ntypat ! default size for all datasets
708 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
709 25462 : narrm(idtset)=dtsets(idtset)%ntypat
710 25462 : if(idtset==0)narrm(idtset)=mxvals%ntypat
711 62144 : if (narrm(idtset)>0) intarr(1:narrm(idtset),idtset)=dtsets(idtset)%lexexch(1:narrm(idtset))
712 : end do
713 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr, narrm,ncid,ndtset_alloc,'lexexch','INT',multivals%ntypat)
714 :
715 : !ldaminushalf
716 : narr=mxvals%ntypat ! default size for all datasets
717 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
718 25462 : narrm(idtset)=dtsets(idtset)%ntypat
719 25462 : if(idtset==0)narrm(idtset)=mxvals%ntypat
720 62144 : if (narrm(idtset)>0) intarr(1:narrm(idtset),idtset)=dtsets(idtset)%ldaminushalf(1:narrm(idtset))
721 : end do
722 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'ldaminushalf','INT',multivals%ntypat)
723 :
724 : !localrdwf
725 29986 : intarr(1,:)=dtsets(:)%localrdwf
726 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'localrdwf','INT',0)
727 :
728 : !lpawu
729 : narr=mxvals%ntypat ! default size for all datasets
730 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
731 25462 : narrm(idtset)=dtsets(idtset)%ntypat
732 25462 : if(idtset==0)narrm(idtset)=mxvals%ntypat
733 62144 : if (narrm(idtset)>0) intarr(1:narrm(idtset),idtset)=dtsets(idtset)%lpawu(1:narrm(idtset))
734 : end do
735 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'lpawu','INT',multivals%ntypat)
736 :
737 : #if defined HAVE_LOTF
738 : if (any(dtsets(:)%ionmov==23)) then
739 : intarr(1,:)=dtsets(:)%lotf_classic
740 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lotf_classic','INT',0)
741 : intarr(1,:)=dtsets(:)%lotf_nitex
742 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lotf_nitex','INT',0)
743 : intarr(1,:)=dtsets(:)%lotf_nneigx
744 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lotf_nneigx','INT',0)
745 : intarr(1,:)=dtsets(:)%lotf_version
746 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lotf_version','INT',0)
747 : end if
748 : #endif
749 :
750 29986 : intarr(1,:)=dtsets(:)%lw_flexo
751 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lw_flexo','INT',0)
752 :
753 29986 : intarr(1,:)=dtsets(:)%lw_qdrpl
754 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lw_qdrpl','INT',0)
755 :
756 29986 : intarr(1,:)=dtsets(:)%lw_natopt
757 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'lw_natopt','INT',0)
758 :
759 : !write(ab_out,*)' outvar_i_n : M '
760 : !call flush(ab_out)
761 : !###########################################################
762 : !### 03. Print all the input variables (M)
763 : !##
764 :
765 29986 : intarr(1,:)=dtsets(:)%macro_uj
766 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'macro_uj','INT',0)
767 :
768 29986 : dprarr(1,:)=dtsets(:)%magcon_lambda
769 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'magcon_lambda','DPR',0)
770 :
771 29986 : intarr(1,:)=dtsets(:)%magconon
772 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'magconon','INT',0)
773 :
774 29986 : dprarr(1,:)=dtsets(:)%magpen
775 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'magpen','ENE',0)
776 :
777 29986 : dprarr(1,:)=dtsets(:)%maxestep
778 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'maxestep','ENE',0)
779 :
780 29986 : intarr(1,:)=dtsets(:)%max_ncpus
781 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'max_ncpus','INT',0)
782 :
783 29986 : intarr(1,:)=dtsets(:)%maxnsym
784 4524 : call prttagm(dprarr,intarr,iout,jdtset_,4,marr,1,narrm,ncid,ndtset_alloc,'maxnsym','INT',0)
785 :
786 29986 : dprarr(1,:)=dtsets(:)%mbpt_sciss
787 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'mbpt_sciss','ENE',0)
788 :
789 29646 : if (any(mod(dtsets(:)%wfoptalg,10)==1)) then
790 748 : intarr(1,:)=dtsets(:)%mdeg_filter
791 116 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'mdeg_filter','INT',0)
792 : end if
793 :
794 29986 : dprarr(1,:)=dtsets(:)%mdf_epsinf
795 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'mdf_epsinf','DPR',0)
796 :
797 29986 : dprarr(1,:)=dtsets(:)%mdtemp(1)
798 29986 : dprarr(2,:)=dtsets(:)%mdtemp(2)
799 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'mdtemp','DPR',0)
800 :
801 29986 : dprarr(1,:)=dtsets(:)%mdwall
802 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'mdwall','LEN',0)
803 :
804 29986 : intarr(1,:)=dtsets(:)%mem_test
805 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'mem_test','INT',0)
806 :
807 29986 : dprarr(1,:)=dtsets(:)%mep_mxstep
808 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'mep_mxstep','LEN',0)
809 :
810 29986 : intarr(1,:)=dtsets(:)%mep_solver
811 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'mep_solver','INT',0)
812 :
813 29986 : intarr(1,:)=dtsets(:)%mffmem
814 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'mffmem','INT',0)
815 :
816 : !mixalch
817 56668 : prtimg(:,:)=1
818 29986 : do idtset=0,ndtset_alloc
819 25462 : if(idtset/=0)then
820 20938 : size1=dtsets(idtset)%npspalch ; size2=dtsets(idtset)%ntypalch
821 : else
822 4524 : size1=npsp ; size2=mxvals%ntypat
823 : end if
824 25462 : narrm(idtset)=size1*size2
825 56200 : do iimage=1,nimagem(idtset)
826 51676 : if (narrm(idtset)>0) then
827 : dprarr_images(1:narrm(idtset),iimage,idtset)=&
828 9256 : & reshape(results_out(idtset)%mixalch(1:size1,1:size2,iimage), [narrm(idtset)] )
829 : end if
830 : end do
831 : end do
832 : call prttagm_images(dprarr_images,iout,jdtset_,1,marr,narrm,ncid,ndtset_alloc,'mixalch','DPR',&
833 4524 : & mxvals%nimage,nimagem,ndtset,prtimg,strimg)
834 :
835 29986 : intarr(1,:)=dtsets(:)%mixprec
836 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'mixprec','INT',0)
837 :
838 : !mixesimgf
839 4409052 : dprarr(1:marr,0)=zero ! default value
840 4524 : narr=mxvals%nimage ! default size for all datasets
841 25438 : if(any(abs(dtsets(1:ndtset_alloc)%imgmov-6)==0))then
842 8 : multival=multivals%nimage
843 32 : do idtset=1,ndtset_alloc ! specific size and array for each dataset
844 24 : narrm(idtset)=dtsets(idtset)%nimage
845 80 : dprarr(1:narrm(idtset),idtset)=dtsets(idtset)%mixesimgf(1:narrm(idtset))
846 : end do
847 : else
848 4516 : multival=0
849 25430 : narrm(1:ndtset_alloc)=narr
850 15520370 : dprarr(1:marr,1:ndtset_alloc)=zero
851 : endif
852 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'mixesimgf','DPR',multival)
853 :
854 29986 : intarr(1,:)=dtsets(:)%mkmem
855 4524 : call prttagm(dprarr,intarr,iout,jdtset_,5,marr,1,narrm,ncid,ndtset_alloc,'mkmem','INT',0)
856 :
857 25462 : if(sum(response_(:))/=0)then
858 6904 : intarr(1,:)=dtsets(:)%mkqmem
859 1008 : call prttagm(dprarr,intarr,iout,jdtset_,5,marr,1,narrm,ncid,ndtset_alloc,'mkqmem','INT',0)
860 : end if
861 :
862 25462 : if(sum(response_(:))/=0)then
863 6904 : intarr(1,:)=dtsets(:)%mk1mem
864 1008 : call prttagm(dprarr,intarr,iout,jdtset_,5,marr,1,narrm,ncid,ndtset_alloc,'mk1mem','INT',0)
865 : end if
866 :
867 4524 : test_write=0
868 25462 : do idtset=1,ndtset_alloc
869 25462 : if(dtsets(idtset)%mpatpol(1)/=1 .or. dtsets(idtset)%mpatpol(2)/=dtsets(idtset)%natom)test_write=1
870 : enddo
871 4524 : if(test_write==1)then
872 44 : intarr(1,:)=dtsets(:)%mpatpol(1)
873 44 : intarr(2,:)=dtsets(:)%mpatpol(2)
874 8 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,2,narrm,ncid,ndtset_alloc,'mpatpol','INT',0)
875 : endif
876 :
877 29986 : intarr(1,:)=dtsets(:)%mpdir(1)
878 29986 : intarr(2,:)=dtsets(:)%mpdir(2)
879 29986 : intarr(3,:)=dtsets(:)%mpdir(3)
880 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'mpdir','INT',0)
881 :
882 29986 : intarr(1,:)=dtsets(:)%mqgrid
883 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'mqgrid','INT',0)
884 :
885 29986 : intarr(1,:)=dtsets(:)%mqgriddg
886 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'mqgriddg','INT',0)
887 :
888 : !###########################################################
889 : !### 03. Print all the input variables (N)
890 : !##
891 :
892 29986 : intarr(1,:)=natfix_(:)
893 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natfix','INT',0)
894 :
895 29986 : intarr(1,:)=natfixx_(:)
896 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natfixx','INT',0)
897 :
898 29986 : intarr(1,:)=natfixy_(:)
899 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natfixy','INT',0)
900 :
901 29986 : intarr(1,:)=natfixz_(:)
902 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natfixz','INT',0)
903 :
904 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%natnd
905 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natnd','INT',0)
906 :
907 29986 : intarr(1,:)=dtsets(0:ndtset_alloc)%natom
908 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natom','INT',0,forceprint=2)
909 :
910 : !natsph
911 : !Need to be printed only if there is some occurrence of prtdos==3 or
912 : !pawfatbnd>0
913 4524 : narr=1 ! default size for all datasets
914 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
915 25462 : narrm(idtset)=1
916 25462 : intarr(1,idtset)=dtsets(idtset)%natsph
917 :
918 29986 : if(dtsets(idtset)%prtdos==3.or.dtsets(idtset)%pawfatbnd>0)then
919 : narrm(idtset)=1
920 : else
921 25378 : narrm(idtset)=0
922 : end if
923 : end do
924 25462 : if (ndtset_alloc==1.and.sum(narrm(1:ndtset_alloc))==1) multi_atsph=0
925 : ! Emulating multiple size for narrm
926 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,narr,narrm,ncid,ndtset_alloc,'natsph','INT',multi_atsph)
927 :
928 : !natsph_extra
929 29986 : intarr(1,:)=dtsets(0:ndtset_alloc)%natsph_extra
930 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'natsph_extra','INT',0)
931 :
932 4524 : if(dtsets(1)%occopt==2)then
933 152 : narr=dtsets(1)%nkpt*dtsets(1)%nsppol ! default size for all datasets
934 : else
935 : narr=1
936 : end if
937 :
938 29986 : do idtset=0,ndtset_alloc ! specific size for each dataset
939 25462 : if(dtsets(idtset)%occopt==2)then
940 856 : narrm(idtset)=dtsets(idtset)%nkpt*dtsets(idtset)%nsppol
941 : else
942 24606 : narrm(idtset)=1
943 : end if
944 :
945 29986 : if (narrm(idtset)>0) then
946 52124 : intarr(1:narrm(idtset),idtset)=dtsets(idtset)%nband(1:narrm(idtset))
947 : end if
948 : end do
949 :
950 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,&
951 4524 : narrm,ncid,ndtset_alloc,'nband','INT',multivals%nkpt+multivals%nsppol+multi_occopt)
952 :
953 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%natvshift
954 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'natvshift','INT',0)
955 :
956 25462 : if(sum(dtsets(1:ndtset_alloc)%usefock)/=0)then
957 1032 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nbandhf
958 140 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nbandhf','INT',0)
959 : end if
960 :
961 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nbandkss
962 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nbandkss','INT',0)
963 :
964 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nbdblock
965 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nbdblock','INT',0)
966 :
967 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nbdbuf
968 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nbdbuf','INT',0)
969 :
970 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nberry
971 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nberry','INT',0)
972 :
973 : !:intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nb_protected
974 : !:call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nb_protected','INT',0)
975 :
976 : !intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nb_per_slice
977 : !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nb_per_slice','INT',0)
978 :
979 29986 : intarr(1,:)=dtsets(:)%nc_xccc_gspace
980 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nc_xccc_gspace','INT',0)
981 :
982 29986 : intarr(1,:)=dtsets(:)%nconeq
983 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nconeq','INT',0)
984 :
985 29986 : intarr(1,:)=dtsets(:)%nctime
986 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nctime','INT',0)
987 :
988 : !ndtset
989 4524 : if(ndtset>0)then
990 25948 : intarr(1,:)=ndtset
991 3178 : intarr(1,0)=0
992 3178 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ndtset','INT',0)
993 : end if
994 :
995 29986 : intarr(1,:)=dtsets(:)%ndivsm
996 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ndivsm','INT',0)
997 :
998 : !intarr(1,:)=dtsets(:)%nkpath
999 : !call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nkpath','INT',0)
1000 :
1001 29986 : intarr(1,:)=dtsets(:)%ndynimage
1002 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ndynimage','INT',0)
1003 :
1004 29986 : intarr(1,:)=dtsets(:)%neb_algo
1005 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'neb_algo','INT',0)
1006 :
1007 29986 : intarr(1,:)=dtsets(:)%neb_cell_algo
1008 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'neb_cell_algo','INT',0)
1009 :
1010 29986 : dprarr(1,:)=dtsets(:)%neb_spring(1)
1011 29986 : dprarr(2,:)=dtsets(:)%neb_spring(2)
1012 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,2,narrm,ncid,ndtset_alloc,'neb_spring','DPR',0)
1013 :
1014 29986 : intarr(1,:)=dtsets(:)%nfreqim
1015 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nfreqim','INT',0)
1016 :
1017 29986 : intarr(1,:)=dtsets(:)%nfreqim_conv
1018 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nfreqim_conv','INT',0)
1019 :
1020 29986 : intarr(1,:)=dtsets(:)%nfreqre
1021 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nfreqre','INT',0)
1022 :
1023 29986 : intarr(1,:)=dtsets(:)%nfreqsp
1024 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nfreqsp','INT',0)
1025 :
1026 29986 : intarr(1,:)=dtsets(:)%ngfft(1)
1027 29986 : intarr(2,:)=dtsets(:)%ngfft(2)
1028 29986 : intarr(3,:)=dtsets(:)%ngfft(3)
1029 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'ngfft','INT',0)
1030 :
1031 29986 : intarr(1,:)=dtsets(:)%ngfftdg(1)
1032 29986 : intarr(2,:)=dtsets(:)%ngfftdg(2)
1033 29986 : intarr(3,:)=dtsets(:)%ngfftdg(3)
1034 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,3,narrm,ncid,ndtset_alloc,'ngfftdg','INT',0)
1035 :
1036 29986 : intarr(1,:)=dtsets(:)%nimage
1037 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nimage','INT',0)
1038 :
1039 29986 : intarr(1,:)=dtsets(:)%nkpt
1040 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nkpt','INT',0)
1041 :
1042 29986 : intarr(1,:)=dtsets(:)%nkptgw
1043 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nkptgw','INT',0)
1044 :
1045 25462 : if(sum(dtsets(1:ndtset_alloc)%usefock)/=0)then
1046 1032 : intarr(1,:)=dtsets(:)%nkpthf
1047 140 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nkpthf','INT',0)
1048 : end if
1049 :
1050 29986 : intarr(1,:)=dtsets(:)%nline
1051 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nline','INT',0)
1052 :
1053 29986 : intarr(1,:)=dtsets(:)%nslice
1054 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nslice','INT',0)
1055 :
1056 29986 : intarr(1,:)=dtsets(:)%nblock_lobpcg
1057 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nblock_lobpcg','INT',0)
1058 :
1059 29986 : intarr(1,:)=dtsets(:)%nloalg(1)
1060 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nloc_alg','INT',0)
1061 :
1062 29986 : intarr(1,:)=dtsets(:)%nloalg(2)*(dtsets(:)%nloalg(3)+1)
1063 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nloc_mem','INT',0)
1064 :
1065 29986 : intarr(1,:)=dtsets(:)%nnos
1066 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nnos','INT',0)
1067 :
1068 29986 : intarr(1,:)=dtsets(:)%nnsclo
1069 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nnsclo','INT',0)
1070 :
1071 29986 : intarr(1,:)=dtsets(:)%nnsclohf
1072 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nnsclohf','INT',0)
1073 :
1074 29986 : intarr(1,:)=dtsets(:)%nomegasf
1075 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nomegasf','INT',0)
1076 :
1077 29986 : intarr(1,:)=dtsets(:)%nomegasi
1078 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nomegasi','INT',0)
1079 :
1080 29986 : intarr(1,:)=dtsets(:)%nomegasrd
1081 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nomegasrd','INT',0)
1082 :
1083 29986 : intarr(1,:)=dtsets(:)%nonlinear_info
1084 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nonlinear_info','INT',0)
1085 :
1086 29986 : intarr(1,:)=dtsets(:)%nonlop_ylm_count
1087 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nonlop_ylm_count','INT',0)
1088 :
1089 29986 : dprarr(1,:)=dtsets(:)%noseinert
1090 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'noseinert','DPR',0)
1091 :
1092 29986 : intarr(1,:)=dtsets(:)%npband
1093 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npband','INT',0,firstchar="-")
1094 :
1095 29986 : intarr(1,:)=dtsets(:)%npfft
1096 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npfft','INT',0,firstchar="-")
1097 :
1098 29986 : intarr(1,:)=dtsets(:)%nphf
1099 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nphf','INT',0,firstchar="-")
1100 :
1101 29986 : intarr(1,:)=dtsets(:)%npimage
1102 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npimage','INT',0,firstchar="-")
1103 :
1104 29986 : intarr(1,:)=dtsets(:)%np_spkpt
1105 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'np_spkpt','INT',0,firstchar='-')
1106 :
1107 29986 : intarr(1,:)=dtsets(:)%nppert
1108 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nppert','INT',0,firstchar="-")
1109 :
1110 4524 : if(multivals%ntypat/=0 .or. (multivals%ntypat==0 .and. ntypat/=npsp) )then
1111 144 : intarr(1,:)=dtsets(:)%npsp
1112 32 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npsp','INT',0)
1113 : end if
1114 :
1115 29986 : intarr(1,:)=dtsets(:)%npspinor
1116 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npspinor','INT',0,firstchar="-")
1117 :
1118 29986 : intarr(1,:)=dtsets(0:ndtset_alloc)%npulayit
1119 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npulayit','INT',0)
1120 :
1121 29986 : intarr(1,:)=dtsets(:)%npweps
1122 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npweps','INT',0)
1123 :
1124 29986 : intarr(1,:)=dtsets(:)%npwkss
1125 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npwkss','INT',0)
1126 :
1127 29986 : intarr(1,:)=dtsets(:)%npwsigx
1128 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npwsigx','INT',0)
1129 :
1130 29986 : intarr(1,:)=dtsets(:)%npwwfn
1131 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npwwfn','INT',0)
1132 :
1133 29986 : intarr(1,:)=dtsets(:)%np_slk
1134 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'np_slk','INT',0,firstchar="-")
1135 :
1136 29986 : dprarr(1,:)=dtsets(:)%nqfd
1137 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nqfd','DPR',0)
1138 :
1139 29986 : intarr(1,:)=dtsets(:)%nqpt
1140 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nqpt','INT',0)
1141 :
1142 29986 : intarr(1,:)=dtsets(:)%nqptdm
1143 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'nqptdm','INT',0)
1144 :
1145 29986 : intarr(1,:)=dtsets(:)%npvel
1146 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'npvel','INT',0)
1147 :
1148 29986 : intarr(1,:)=dtsets(:)%nscforder
1149 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nscforder','INT',0)
1150 :
1151 : !nshiftk
1152 25462 : if(sum((dtsets(1:ndtset_alloc)%kptopt)**2)/=0)then
1153 3154 : ndtset_kptopt=0
1154 6308 : intarr(1:1,0)=dtsets(0)%nshiftk
1155 9462 : ABI_MALLOC(jdtset_kptopt,(0:ndtset_alloc))
1156 : ! Define the set of datasets for which kptopt>0
1157 15522 : do idtset=1,ndtset_alloc
1158 12368 : kptopt=dtsets(idtset)%kptopt
1159 15522 : if(kptopt>0)then
1160 11476 : ndtset_kptopt=ndtset_kptopt+1
1161 11476 : jdtset_kptopt(ndtset_kptopt)=jdtset_(idtset)
1162 22952 : intarr(1:1,ndtset_kptopt)=dtsets(idtset)%nshiftk
1163 : end if
1164 : end do
1165 3154 : if(ndtset_kptopt>0)then
1166 3150 : call prttagm(dprarr,intarr,iout,jdtset_kptopt,2,marr,1,narrm,ncid,ndtset_kptopt,'nshiftk','INT',0)
1167 : end if
1168 3154 : ABI_FREE(jdtset_kptopt)
1169 : end if
1170 :
1171 29986 : intarr(1,:)=dtsets(:)%nspden
1172 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nspden','INT',0)
1173 :
1174 29986 : intarr(1,:)=dtsets(:)%nspinor
1175 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nspinor','INT',0)
1176 :
1177 29986 : intarr(1,:)=dtsets(:)%nsppol
1178 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nsppol','INT',0)
1179 :
1180 29986 : intarr(1,:)=dtsets(:)%nstep
1181 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nstep','INT',0)
1182 :
1183 29986 : intarr(1,:)=dtsets(:)%nstep_mixed
1184 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nstep_mixed','INT',0)
1185 :
1186 29986 : intarr(1,:)=dtsets(:)%nsym
1187 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nsym','INT',0)
1188 :
1189 29986 : intarr(1,:)=dtsets(:)%ntime
1190 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ntime','INT',0)
1191 :
1192 29986 : intarr(1,:)=dtsets(:)%ntimimage
1193 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ntimimage','INT',0)
1194 :
1195 29986 : intarr(1,:)=dtsets(:)%ntypalch
1196 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ntypalch','INT',0)
1197 :
1198 29986 : intarr(1,:)=dtsets(:)%ntypat
1199 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'ntypat','INT',0,forceprint=2)
1200 :
1201 : !nucdipmom
1202 4409052 : dprarr(:,0)=0.0_dp
1203 4524 : narr=3*natom ! default size for all datasets
1204 25462 : do idtset=1,ndtset_alloc ! specific size for each dataset
1205 20938 : narrm(idtset)=3*dtsets(idtset)%natom
1206 20938 : if (narrm(idtset)>0) then
1207 41876 : dprarr(1:narrm(idtset),idtset)= reshape(dtsets(idtset)%nucdipmom(1:3,1:dtsets(idtset)%natom), [narrm(idtset)])
1208 : end if
1209 390102 : if(sum(abs( dtsets(idtset)%nucdipmom(1:3,1:dtsets(idtset)%natom))) < tol12 ) narrm(idtset)=0
1210 : end do
1211 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,narr,narrm,ncid,ndtset_alloc,'nucdipmom','DPR',multivals%natom)
1212 :
1213 29986 : intarr(1,:)=dtsets(:)%nucefg
1214 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nucefg','INT',0)
1215 :
1216 29986 : intarr(1,:)=dtsets(:)%nucfc
1217 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nucfc','INT',0)
1218 :
1219 29986 : intarr(1,:)=dtsets(:)%nwfshist
1220 4524 : call prttagm(dprarr,intarr,iout,jdtset_,2,marr,1,narrm,ncid,ndtset_alloc,'nwfshist','INT',0)
1221 :
1222 29986 : intarr(1,0:ndtset_alloc)=dtsets(0:ndtset_alloc)%nzchempot
1223 4524 : call prttagm(dprarr,intarr,iout,jdtset_,1,marr,1,narrm,ncid,ndtset_alloc,'nzchempot','INT',0)
1224 :
1225 : !###########################################################
1226 : !## Deallocation for generic arrays, and for i-n variables
1227 :
1228 4524 : ABI_FREE(dprarr)
1229 4524 : ABI_FREE(intarr)
1230 4524 : ABI_FREE(narrm)
1231 4524 : ABI_FREE(nimagem)
1232 4524 : ABI_FREE(dprarr_images)
1233 4524 : ABI_FREE(prtimg)
1234 :
1235 4524 : ABI_FREE(natfix_)
1236 4524 : ABI_FREE(iatfixio_)
1237 4524 : ABI_FREE(natfixx_)
1238 4524 : ABI_FREE(iatfixx_)
1239 4524 : ABI_FREE(natfixy_)
1240 4524 : ABI_FREE(iatfixy_)
1241 4524 : ABI_FREE(natfixz_)
1242 4524 : ABI_FREE(iatfixz_)
1243 :
1244 : DBG_EXIT("COLL")
1245 :
1246 4524 : end subroutine outvar_i_n
1247 : !!***
1248 :
1249 : end module m_outvar_i_n
1250 : !!***
|