atomes 1.3.1
atomes: an atomic scale modeling tool box
Loading...
Searching...
No Matches
parameters.F90
Go to the documentation of this file.
1! This file is part of the 'atomes' software.
2!
3! 'atomes' is free software: you can redistribute it and/or modify it under the terms
4! of the GNU Affero General Public License as published by the Free Software Foundation,
5! either version 3 of the License, or (at your option) any later version.
6!
7! 'atomes' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
8! without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9! See the GNU General Public License for more details.
10!
11! You should have received a copy of the GNU Affero General Public License along with 'atomes'.
12! If not, see <https://www.gnu.org/licenses/>
13!
14! Copyright (C) 2022-2026 by CNRS and University of Strasbourg
15!
16!>
17!! @file parameters.F90
18!! @short Global variable declarations
19!! @author Sébastien Le Roux <sebastien.leroux@ipcms.unistra.fr>
20
21!################################################################
22! This is the atomes code main include file which contains:
23! - Variables
24! - Structures
25! used all along the code and classified as follow:
26!
27! - LOGICAL type variables
28! - LOGICAL (:) type variables
29! - LOGICAL (:,:) type variables
30!
31! - INTEGER type variables
32! - INTEGER(:) type variables
33! - INTEGER(:,:) type variables
34! - INTEGER(:,:,:) type variables
35! - INTEGER(:,:,:,:) type variables
36! - INTEGER(:,:,:,:,:) type variables
37!
38! - CHARACTER type variables
39! - CHARACTER(:) type variables
40! - CHARACTER(:,:) type variables
41! - CHARACTER(:,:,:) type variables
42!
43! - DOUBLE PRECISION type variables
44!
45! - DOUBLE PRECISION type variables
46! - DOUBLE PRECISION(:) type variables
47! - DOUBLE PRECISION(:,:) type variables
48! - DOUBLE PRECISION(:,:,:) type variables
49! - DOUBLE PRECISION(:,:,:,:) type variables
50!
51! - STRUCTURES definitions
52!
53! - MPI // Only variables
54!
55! furthermore inside this first selection variables
56! have been sorted by routines when necessary/possible
57!################################################################
58
60
61use, INTRINSIC :: iso_c_binding
62
63IMPLICIT NONE
64
65!#################################### LOGICAL VARIABLES ####################################!
66
67LOGICAL :: pbc=.false. ! 1/0 Enable or disable periodic boundary conditions
68LOGICAL :: frac=.false. ! 1/0 Lattice relatives or DOUBLE PRECISIONs positions for atoms
69LOGICAL :: nohp=.false. ! 1/0 Enable/disable homopolar bonds in connectivty
70LOGICAL :: abab=.false. ! 1/0 Enable or disable only ABAB rings if more than 3 chemical species
71LOGICAL :: aaaa=.false. ! 1/0 Enable or disable only AAAA chains
72LOGICAL :: acac=.false. ! 1/0 Enable or disable only ABAB chains
73LOGICAL :: isolated=.false. ! 1/0 1-2-2-1 chains or N-2-2-N N=1,3 ... chains
74LOGICAL :: tomo=.false. ! 1/0 Homopolar or no homopolar bonds in the rings
75LOGICAL :: calc_rings=.false. ! 1/0 Compute ring statistics
76LOGICAL :: calc_r0=.false. ! 1/0 Find all existing rings in the box
77LOGICAL :: calc_r1=.false. ! 1/0 Shortest Path analysis
78LOGICAL :: calc_r2=.false. ! 1/0 King's analysis
79LOGICAL :: calc_r3=.false. ! 1/0 SP + Homo
80LOGICAL :: calc_r4=.false. ! 1/0 King's + Homo
81LOGICAL :: calc_prings=.false. ! 1/0 Compute primitive ring statistics
82LOGICAL :: calc_strings=.false. ! 1/0 Compute strongs ring statistics
83LOGICAL :: ring_p1=.false. ! 1/0 Compute first part of detailed ring properties
84LOGICAL :: ring_p2=.false. ! 1/0 Compute second part of detailed ring properties
85LOGICAL :: ring_p3=.false. ! 1/0 Compute third part of detailed ring properties
86LOGICAL :: ring_p4=.false. ! 1/0 Compute fourth part of detailed ring properties
87LOGICAL :: ring_p5=.false. ! 1/0 Compute fifth part of detailed ring properties
88LOGICAL :: overall_cubic=.false. ! 1/0 Cubic a=b=c, 90.0, 90.0, 90.0
89#ifdef OPENMP
90LOGICAL :: all_atoms=.false. ! 1/0 Force OpenMP on ATOMS
91#endif
92
93! *rings*.f90 !
94
95LOGICAL :: factatring=.false. ! 1/0 Calculate atomic ring factor using the RN variable (thesis S. LE ROUX)
96LOGICAL :: factatpna=.false. ! 1/0 Calculate atomic ring factor using the PN variable (thesis S. LE ROUX)
97LOGICAL :: factatrmax=.false. ! 1/0 Calculate atomic ring factor using the Pmax var (thesis S. LE ROUX)
98LOGICAL :: factatrmin=.false. ! 1/0 Calculate atomic ring factor using the Pmin var (thesis S. LE ROUX)
99LOGICAL :: runsearch ! 1/0 Run ring statistics in the case of 3 or more species
100LOGICAL :: addspec ! 1/0 Add to chain in the ring case of 3 or more species
101LOGICAL :: doampat=.false. ! 1/0 if CALC_R1,R2,R3 or R4 to known if there are paths > TAILLD
102LOGICAL :: saut, ssaut
103LOGICAL :: found
104LOGICAL :: pathout
105LOGICAL :: firr, pirr
106LOGICAL :: homo
107LOGICAL :: dosearch
108LOGICAL :: tbr=.false.
109LOGICAL :: alc=.false.
110LOGICAL :: no_homo=.false.
111LOGICAL :: allrings=.false.
112
113!##########################################################################################!
114
115
116!###################################### INTEGER VARIABLES #####################################!
117
118!***************************************** Misc *******************************************!
119
120INTEGER :: h=0, i=0, j=0, k=0, l=0, m=0, n=0, o=0, p=0, r=0, t=0, u=0, v=0
121INTEGER :: noa, nob, noc, nod, noe
123INTEGER :: nsub, ntsub, tsub, err
124INTEGER :: nl, nc, nsi, nsj
125INTEGER :: number_of_i
126INTEGER :: dtv
127INTEGER :: nbonds, anbonds
128INTEGER :: ndx, nbx, idr
129INTEGER :: gr_index
130INTEGER :: sum_index
131INTEGER :: ang_i
132INTEGER :: finish, indexmsf
133INTEGER :: id1, id2, id, gtbsize
134INTEGER :: spirr
135INTEGER :: l_tot, la_tot
136INTEGER :: numa, sc
137INTEGER :: path, nnp, nna
138INTEGER :: loa, lob, loc
139INTEGER :: maxat, minat
140INTEGER :: maxst, minst
142INTEGER :: ab, abc
143
144!*************************************** Defined ******************************************!
145
146INTEGER :: na, number_of_a ! Number of atom in the box
147INTEGER :: nsp, nsp_by_step ! Number of species
148INTEGER :: ns, nos, nstp ! Number of DM steps = Number of configurations
149INTEGER :: nsbg ! Number of step between each geomerty
150INTEGER :: taillr, tailld ! Depth for rings hunt
151INTEGER :: taille, taillh, taillt ! Depth for rings hunt
152INTEGER :: taillc ! Depth for chains hunt
153INTEGER :: tlt, ntlt
154INTEGER :: number_of_qmod ! Number of Qvect modulus
155INTEGER :: number_of_qvect ! Number of Qvectors
156INTEGER :: ltlt ! Ring's hunt species
157INTEGER :: ncells ! Number of lattice 1 or MD steps if NPT calculation
158
159INTEGER :: idgr=0
160INTEGER :: idsq=1
161INTEGER :: idsk=2
162INTEGER :: idgrfft=3
163INTEGER :: idbd=4
164INTEGER :: idan=5
165INTEGER :: idri=6
166INTEGER :: idch=7
167INTEGER :: idsp=8
168INTEGER :: idmsd=9
169INTEGER :: idskt=10
170
171INTEGER :: maxn=20 ! The maximun number of neighbors an atom can have
172
173! *rings*.f90 !
174
175INTEGER :: molats
176INTEGER :: molstep
177INTEGER :: molcounter
178INTEGER :: tmbs
179
180!##########################################################################################!
181
182
183!#################################### INTEGER(:) VARIABLES #####################################!
184
185!************************************* defined ********************************************!
186
187INTEGER, DIMENSION(:), ALLOCATABLE :: lot
188INTEGER, DIMENSION(:), ALLOCATABLE :: nbspbs ! Number of atom of species=index_1
189
190! prepdata.F90 !
191
192INTEGER, DIMENSION(:), ALLOCATABLE :: atomid
193
194! dmtx.f90 !
195
196INTEGER, DIMENSION(3) :: isize
197
198! sk.f90 !
199
200INTEGER, DIMENSION(:), ALLOCATABLE :: degeneracy
201
202! molecuels.f90 !
203
204INTEGER, DIMENSION(:), ALLOCATABLE :: mibs
205
206! bonds.F90 !
207
208INTEGER, DIMENSION(:), ALLOCATABLE :: tot_gsa
209INTEGER, DIMENSION(:), ALLOCATABLE :: ntetra
210INTEGER, DIMENSION(:), ALLOCATABLE :: lp_geom
211INTEGER, DIMENSION(:), ALLOCATABLE :: togl, tigl
212INTEGER, DIMENSION(:), ALLOCATABLE :: lgsa, ngsa
213
214! *rings*.f90 !
215
216INTEGER, DIMENSION(:), ALLOCATABLE :: rpat, cpat
217INTEGER, DIMENSION(:), ALLOCATABLE :: mol_atoms
218
219! alloc*rings.F90 - rings.F90 !
220
221INTEGER, DIMENSION(:), ALLOCATABLE :: res_list
222INTEGER, DIMENSION(:), ALLOCATABLE :: apna, spna
223INTEGER, DIMENSION(:), ALLOCATABLE :: valid
224
225! primrings.F90 !
226
227INTEGER, DIMENSION(:), ALLOCATABLE :: queue, ringstat
228INTEGER, DIMENSION(:), ALLOCATABLE :: npring, matdist
229
230!#################################### INTEGER (:,:) VARIABLES ###################################!
231
232! bonds.F90 !
233
234INTEGER, DIMENSION(:,:), ALLOCATABLE :: lt_geom
235INTEGER, DIMENSION(:,:), ALLOCATABLE :: geom_la
236INTEGER, DIMENSION(:,:), ALLOCATABLE :: tot_geomsa
237INTEGER, DIMENSION(:,:), ALLOCATABLE :: tetra
238
239! molecules.f90 !
240
241INTEGER, DIMENSION(:,:), ALLOCATABLE :: tiida
242INTEGER, DIMENSION(:,:), ALLOCATABLE :: tisp
243
244! dmtx.f90 !
245
246INTEGER, DIMENSION(:,:), ALLOCATABLE :: contj
247
248! escs.F90 !
249
250INTEGER, DIMENSION(:,:), ALLOCATABLE :: cort
251INTEGER, DIMENSION(:,:), ALLOCATABLE :: edget
252INTEGER, DIMENSION(:,:), ALLOCATABLE :: deft
253INTEGER, DIMENSION(:,:), ALLOCATABLE :: corta
254INTEGER, DIMENSION(:,:), ALLOCATABLE :: edgeta
255INTEGER, DIMENSION(:,:), ALLOCATABLE :: defta
256INTEGER, DIMENSION(:,:), ALLOCATABLE :: tda
257
258! alloc*rings.F90 - rings.F90 !
259
260INTEGER, DIMENSION(:,:), ALLOCATABLE, TARGET :: indr
261INTEGER, DIMENSION(:,:), ALLOCATABLE, TARGET :: nring
262INTEGER, DIMENSION(:,:), ALLOCATABLE :: vpat
263INTEGER, DIMENSION(:,:), ALLOCATABLE :: indrat, nirrat, nirr
264INTEGER, DIMENSION(:,:), ALLOCATABLE :: atrmsx, atrmsn
265INTEGER, DIMENSION(:,:), ALLOCATABLE :: ampat, atrmax, atrmin
266INTEGER, DIMENSION(:,:), ALLOCATABLE :: maxpna, minpna
267
268! primrings.F90 !
269
270INTEGER, DIMENSION(:,:), ALLOCATABLE :: pring
271INTEGER, DIMENSION(:,:), ALLOCATABLE :: querng, vref
272INTEGER, DIMENSION(:,:), ALLOCATABLE :: pringord
273
274!##########################################################################################!
275
276
277!#################################### INTEGER VARIABLES #################################!
278
279! bonds.F90 !
280
281INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: la_count
282
283! escs.F90 !
284
285INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: corner
286INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: edge
287INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: def
288INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: cornera
289INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: edgea
290INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: defa
291INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: tdsa
292
293! dmtx.f90 !
294
295INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: voisj
296
297! bonds.f90 !
298
299INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: statbd
300
301! allocrings.F90 - rings.F90 !
302
303INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: indring, indsring, lirr
304INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: atring, atpna, matpna
305INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: stpna
306INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: pna, sna
307INTEGER, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: ringsaved
308
309! primrings.F90 !
310
311INTEGER, DIMENSION(:,:,:), ALLOCATABLE, TARGET :: sringsaved
312
313!##########################################################################################!
314
315
316!################################## INTEGER(:,:,:,:) VARIABLES #################################!
317
318! angles.f90 !
319
320! allocrings.F90 - rings.F90 !
321
322INTEGER, DIMENSION(:,:,:,:), ALLOCATABLE, TARGET :: ringord
323
324! allocprims.f90 - primrings.F90 !
325
326INTEGER, DIMENSION(:,:,:,:), ALLOCATABLE, TARGET :: sringord
327
328!##########################################################################################!
329
330
331!###################################### CHARACTER VARIABLES ####################################!
332
333! Misc !
334
335CHARACTER (LEN=15) :: sdate, stime, szone ! Starting date and time
336CHARACTER (LEN=15) :: edate, etime, ezone ! Ending date and time
337CHARACTER (LEN=9) :: progname="ATOMES"
338
339! misc !
340
341CHARACTER (LEN=2) :: choose
342CHARACTER (LEN=2) :: a1, a2
343CHARACTER (LEN=2) :: atot
344CHARACTER (LEN=20) :: nom_tmp
345CHARACTER (LEN=15) :: ntmp, ntmp2, ntmp3, nstep, nomx, nomy
346CHARACTER (LEN=15) :: nom, nom1, nom2, nom3, nom4
347CHARACTER (LEN=40) :: nomsys, noms
348CHARACTER (LEN=16) :: spind
349CHARACTER (LEN=20) :: alc_tab
350
351!##########################################################################################!
352
353
354!##################################### CHARACTER (:) VARIABLES ###################################!
355
356! Misc !
357
358CHARACTER (LEN=2), DIMENSION(:), ALLOCATABLE :: tl, ftab ! Label of species=index_1
359CHARACTER (LEN=2), DIMENSION(:), ALLOCATABLE :: tab_of_type ! List of atom by name(species)=indx_1, by DM step=indx_2
360CHARACTER (LEN=2), DIMENSION(:), ALLOCATABLE :: label ! Label of species=index in input
361
362! prepdata.F90 !
363
364CHARACTER (LEN=15), DIMENSION(:), ALLOCATABLE :: elemid
365
366
367!##########################################################################################!
368
369!#################################### CHARACTER (:,:) VARIABLES ##################################!
370
371CHARACTER (LEN=12), DIMENSION(:,:), ALLOCATABLE :: liste_geoms
372
373!##########################################################################################!
374
375!################################### CHARACTER (:,:,:) VARIABLES #################################!
376
377! CHARACTER (LEN=12), DIMENSION(:,:,:), ALLOCATABLE :: LGEO
378CHARACTER (LEN=12), DIMENSION(:,:,:), ALLOCATABLE :: lgeo
379
380!##########################################################################################!
381
382
383
384!###################################### DOUBLE PRECISION VARIABLES ####################################!
385
386DOUBLE PRECISION :: ltemp
387
388!##########################################################################################!
389
390
391
392!###################################### DOUBLE PRECISION VARIABLES ##################################!
393
394! Misc !
395
396DOUBLE PRECISION :: w=0.0d0, x=0.0d0, y=0.0d0, z=0.0d0
397DOUBLE PRECISION, PARAMETER :: pi=acos(-1.0)
398DOUBLE PRECISION, PARAMETER :: avogadro=6.02214179d0
399DOUBLE PRECISION, PARAMETER :: angtobohr=0.52917721
400DOUBLE PRECISION :: p1, p2, p3
401DOUBLE PRECISION :: time_tot, tstat
402DOUBLE PRECISION :: mbox
403DOUBLE PRECISION :: boxs2
404DOUBLE PRECISION :: base
405DOUBLE PRECISION :: teta
406DOUBLE PRECISION :: dc
407DOUBLE PRECISION :: delta_ang
408DOUBLE PRECISION :: meanvol
409DOUBLE PRECISION :: total_density, real_density
410DOUBLE PRECISION :: freevol, ecfreev
411DOUBLE PRECISION :: dij, dil, vij
412DOUBLE PRECISION :: gr_cutoff
413DOUBLE PRECISION :: cutf
414!DOUBLE PRECISION :: A2A, B2B, C2C, AAA, BBB, CCC
415
416! sq.f90 !
417
418DOUBLE PRECISION :: phi, sinus_phi
419
420! sk.f90 !
421
422DOUBLE PRECISION :: norm_tot, delta_q
423DOUBLE PRECISION :: rmax, sinus_fact_rmax, fact_rmax
424DOUBLE PRECISION :: sigma_liss
425DOUBLE PRECISION :: qvmod, qvmax, qvmin
426
427!##########################################################################################!
428
429
430!#################################### DOUBLE PRECISION (:) VARIABLES ##################################!
431
432! Misc !
433
434DOUBLE PRECISION, DIMENSION(3) :: rij, ril, rim, dab, var ! Position vector
435DOUBLE PRECISION, DIMENSION(3) :: r2ij, r2cor, rcm, rcm2
436DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: s_length
437DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: mass, m_ss
438DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: rvdw, r_dw
439DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: dcte ! Diffusion Cte
440DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: dist_ij, dist_ji
441DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: cmoy, xi
442DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: mtabl
443
444! dmtx.f90 !
445
446DOUBLE PRECISION, DIMENSION(3) :: cutfv
447DOUBLE PRECISION, DIMENSION(3) :: pmin, pmax
448
449! bonds.F90 !
450
451DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: mac
452DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: sa_count
453
454! escs.f90 !
455
456DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: eabl, cabl, dabl
457DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: etabl, ctabl, dtabl
458DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: ectabl, tdtabl
459
460! gr.f90 !
461
462DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: r_point
463DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: grtab
464DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: grtot, ggrtot ! Total RDF
465DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: drn, trn ! Total RDF
466DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: xgrtot, xggrtot ! Total RDF
467DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: drx, trx ! Total RDF
468DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: shell_vol ! Shell volume as a function of d=(index-0.5)DELTA
469
470! sq.f90 !
471
472DOUBLE PRECISION, DIMENSION(2) :: gd, gn, go, c_box
473DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: nscattl ! Neutron Scattering Length of species=index
474DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: xscattl ! X-ray Scattering Length of species=index
475DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: s, xs ! Total structure factor \\ Go=f(G(r))
476DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: gr_t
477DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: q_point, k_point
478
479! sk.f90 - utils.f90 !
480
481DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: fnbspbs
482DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: modq
483DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: qvectx, qvecty, qvectz
484DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: cij, sik
485
486! grfft.f90 !
487
488DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: gfft, dfft, r_pfft, tdfft
489
490! resrings.f90 !
491
492DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: moypur, moyred
493DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: moypat, moyrat
494DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: ectype, ectyp, ectypat, ectat
495DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: irred, red
496DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: redat, irrat
497DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: totpstep
498DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: rnamax, rnamin
499DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: evmax, evmin
500
501!##########################################################################################!
502
503
504!################################## DOUBLE PRECISION (:,:) VARIABLES ##################################!
505
506! Misc !
507
508DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: epna
509DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: poa, pob ! Atm=indx_1, coord=indx_2(1=x, 2=y, 3=z)
510
511! bonds.F90 !
512
513DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: ma_count
514DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: num_gsa
515DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: gr_cut, gr_tmp
516
517! fzbt.f90 !
518
519DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: btij ! Bathia-Thornton Partial g(r)/s(q)
520
521! escs.F90 !
522
523DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: etype
524DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: ctype
525DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: detype
526DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: etypea
527DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: ctypea
528DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: detypea
529DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: etda
530
531! sk.f90 !
532
533DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: qvect
534
535! msd.f90 !
536
537DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: drift, cor
538DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: d2i, d2inac
539
540!##########################################################################################!
541
542
543!################################# DOUBLE PRECISION (:,:,:) VARIABLES #################################!
544
545! Misc !
546
547DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: fullpos
548DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: fullvel
549DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: nfullpos, nfpos
550DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: ecart_type
551
552! gr.f90 !
553
554DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: gr_ij ! Average of the RDF on all the MD run
555DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: ggr_ij ! Average of the RDF on all the MD run
556DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: dn_ij ! Average of the Dn on all the MD run
557
558! grfft.f90 !
559
560DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: gqbt
561
562! sq.f90 !
563
564DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: sij, spij ! Partial structure factor
565DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: ss_ij ! Partial structure factor
566
567! fzbt.f90 !
568
569DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: fzsij
570
571! msd.f90 !
572
573DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: d2ij, d2ijnac, d2dir, d2dirnac
574DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: cornac
575
576!##########################################################################################!
577
578
579!################################ DOUBLE PRECISION (:,:,:,:) VARIABLES ################################!
580
581! gr.F90 !
582
583DOUBLE PRECISION, DIMENSION(:,:,:,:), ALLOCATABLE :: gij ! RDF distance=index_1, atom_a=index_2, atom_b=index_3, step=index_4
584DOUBLE PRECISION, DIMENSION(:,:,:,:), ALLOCATABLE :: dn ! Dn distance=index_1, atom_a=index_2, atom_b=index_3, step=index_4
585
586!##########################################################################################!
587
588!################################ STRUCTURES VARIABLES Definition ###############################!
589
590!TYPE ATOM !
591! INTEGER :: INDICE !
592! INTEGER :: ELEMENT !
593! INTEGER :: NEIGHBOR ! Atom structure definition
594! DOUBLE PRECISION :: X, Y, Z !
595! TYPE (ATOM), POINTER :: PAST !
596! TYPE (ATOM), POINTER :: NEXT !
597!END TYPE ATOM !
598
599!TYPE MOLECULE !
600! INTEGER :: INDICE !
601! INTEGER :: ATOMS !
602! TYPE (ATOM), POINTER :: FIRST_ATOM !
603! TYPE (ATOM), POINTER :: LAST_ATOM ! Molecule structure definition
604! TYPE (MOLECULE), POINTER :: NEXT_MOL !
605! TYPE (MOLECULE), POINTER :: PAST_MOL !
606!END TYPE MOLECULE
607
608!TYPE MODEL !
609! INTEGER :: ATOMS !
610! INTEGER :: MOLECULES ! Model structure definition
611! TYPE (MOLECULE), POINTER :: FIRST_MOL !
612! TYPE (MOLECULE), POINTER :: LAST_MOL !
613!END TYPE MODEL
614 !
615!TYPE (ATOM), POINTER :: AT !
616!TYPE (MOLECULE), POINTER :: MOL !
617!TYPE (MODEL), POINTER :: MODL !
618
619TYPE at
620 INTEGER :: ind
621 TYPE (at), POINTER :: next
622 TYPE (at), POINTER :: prev
623END TYPE at
624
625TYPE mol
626 INTEGER :: mid
627 INTEGER :: step
628 INTEGER :: atomes
629 INTEGER, DIMENSION(:), ALLOCATABLE :: bsp
630 TYPE (at), POINTER :: first_at
631 TYPE (at), POINTER :: atom
632 TYPE (mol), POINTER :: next
633 TYPE (mol), POINTER :: prev
634END TYPE mol
635
636TYPE ring !
637 INTEGER :: atom !
638 INTEGER :: neighbor ! Ring structure definition
639 INTEGER :: spec !
640 TYPE (ring), POINTER :: past ! used in the ring search subroutines
641 TYPE (ring), POINTER :: next !
642END TYPE ring !
643
644TYPE pixel !
645 INTEGER :: neighbor ! Pixel structure definition
646 INTEGER :: atoms !
647 INTEGER, DIMENSION(:), ALLOCATABLE :: atom_id !
648 LOGICAL :: tocheck !
649 LOGICAL :: checked !
650 INTEGER, DIMENSION(27) :: idneigh !
651END TYPE pixel
652
653TYPE (pixel), DIMENSION(:), ALLOCATABLE :: thepix, testpix
654
656 LOGICAL :: glass=.false. ! 1/0 if the structure is 'cubic like' (90/90/90)
657 LOGICAL :: cubic=.false. ! 1/0 if the structure is 'cubic' (90/90/90, a=b=c)
658 DOUBLE PRECISION :: volume
659 DOUBLE PRECISION, DIMENSION(3) :: modv ! Lattice parameters
660 DOUBLE PRECISION :: minv, maxv ! Min, max a,b, c
661 DOUBLE PRECISION, DIMENSION(3) :: modr ! Reciprocal lattice parameters
662 DOUBLE PRECISION :: minr, maxr ! Min, max, ra, rb, rc
663 DOUBLE PRECISION, DIMENSION(3,3) :: lvect ! Lattice vectors
664 DOUBLE PRECISION, DIMENSION(3,3) :: lrecp ! Reciprocal lattice vectors
665 DOUBLE PRECISION, DIMENSION(3,3) :: fractocart, carttofrac ! Conversion matrix
666END TYPE lattice
667
668TYPE (lattice), DIMENSION(:), ALLOCATABLE, TARGET :: the_box
669TYPE (lattice), POINTER :: nbox
670
671!##########################################################################################!
672
673!##########################################################################################!
674
675END MODULE parameters
676
677! ######################################## EOF ###########################################!
678
integer rate_count
integer nsi
integer tsub
integer, dimension(:,:), allocatable atrmax
double precision, dimension(:), allocatable cmoy
double precision, dimension(:,:,:), allocatable fullpos
integer, dimension(:,:,:), allocatable statbd
logical homo
double precision qvmin
double precision, parameter angtobohr
double precision, dimension(:), allocatable drx
integer ncells
integer loa
character(len=2) a2
double precision, dimension(:), allocatable fnbspbs
logical allrings
double precision total_density
integer, dimension(:), allocatable mibs
double precision rmax
integer nsj
integer, dimension(:), allocatable mol_atoms
integer ntlt
double precision, dimension(:,:,:), allocatable nfullpos
integer nos
logical abab
double precision, dimension(2) gd
double precision fact_rmax
double precision, parameter avogadro
double precision, dimension(:), allocatable tdtabl
logical found
double precision, dimension(:), allocatable mtabl
character(len=15) ntmp
double precision, dimension(3) var
double precision, dimension(3) rcm
double precision, dimension(:), allocatable moyred
double precision w
character(len=40) nomsys
double precision qvmod
character(len=15) nom4
double precision, dimension(:), allocatable trx
logical calc_r3
character(len=15) nom3
logical factatrmax
logical ring_p4
double precision, dimension(:), allocatable qvectx
integer, dimension(3) isize
character(len=2) choose
double precision sigma_liss
logical firr
integer ltlt
integer molcounter
logical factatring
integer idmsd
integer, dimension(:,:), allocatable atrmsx
double precision, dimension(:), allocatable nscattl
double precision, dimension(3) rim
double precision, dimension(:,:), allocatable d2inac
double precision, dimension(:), allocatable mass
double precision teta
double precision, dimension(:), allocatable dist_ji
double precision ltemp
double precision, dimension(:,:,:), allocatable fullvel
integer la_tot
double precision dc
double precision, dimension(:,:,:), allocatable fzsij
double precision, dimension(:), allocatable moypat
integer number_of_qmod
double precision boxs2
double precision x
double precision, dimension(:,:,:), allocatable dn_ij
logical isolated
integer taillc
integer, dimension(:,:,:), allocatable atpna
integer number_of_qvect
double precision, dimension(:), allocatable ectyp
character(len=20) nom_tmp
double precision, dimension(:), allocatable qvecty
double precision, dimension(:,:), allocatable pob
integer id2
double precision, dimension(:), allocatable r_pfft
integer, dimension(:,:), allocatable indrat
integer idan
integer tmbs
logical acac
integer, dimension(:), allocatable spna
integer sknum
character(len=15) etime
double precision, dimension(:), allocatable ggrtot
integer shnum
logical calc_r2
double precision delta_q
integer tailld
character(len=2) atot
integer max_count
integer, dimension(:,:,:), allocatable def
double precision, dimension(:), allocatable cij
character(len=2), dimension(:), allocatable tab_of_type
character(len=15), dimension(:), allocatable elemid
double precision, dimension(:), allocatable q_point
integer, dimension(:), allocatable lgsa
double precision, dimension(:,:,:), allocatable ggr_ij
double precision, dimension(:), allocatable grtab
double precision, dimension(:,:), allocatable gr_tmp
integer, dimension(:,:,:), allocatable edge
double precision, dimension(:), allocatable xi
double precision, dimension(:), allocatable moypur
logical pathout
integer, dimension(:,:), allocatable contj
double precision, dimension(:,:), allocatable ctypea
integer finish
double precision, dimension(:,:,:), allocatable d2dirnac
double precision, dimension(:,:), allocatable poa
integer, dimension(:,:,:), allocatable atring
integer idsk
double precision, dimension(:,:,:), allocatable nfpos
logical calc_prings
double precision, dimension(:), allocatable dist_ij
integer nna
character(len=2), dimension(:), allocatable tl
double precision, dimension(:,:), allocatable ma_count
logical factatpna
double precision, dimension(:), allocatable ctabl
double precision, dimension(:), allocatable totpstep
double precision, dimension(:,:,:), allocatable spij
double precision cutf
logical tbr
double precision, dimension(:), allocatable dcte
integer lob
logical ring_p1
double precision, dimension(:), allocatable m_ss
double precision real_density
logical ring_p2
double precision, dimension(3) pmax
integer, dimension(:,:), allocatable ampat
integer gr_index
logical ssaut
character(len=20) alc_tab
type(pixel), dimension(:), allocatable thepix
integer nbx
double precision, dimension(:), allocatable k_point
integer nnp
integer gqnum
integer, dimension(:,:,:), allocatable lirr
character(len=12), dimension(:,:), allocatable liste_geoms
integer nob
integer, dimension(:,:,:), allocatable defa
double precision freevol
double precision base
integer chnum
character(len=15) sdate
integer, dimension(:), allocatable nbspbs
integer molstep
double precision, dimension(:), allocatable evmin
double precision, dimension(:,:), allocatable d2i
integer noc
double precision phi
double precision, dimension(:), allocatable s
integer idsp
integer, dimension(:,:), allocatable maxpna
double precision, dimension(:), allocatable r_point
double precision, dimension(3) r2ij
integer, dimension(:,:), allocatable minpna
double precision, dimension(:,:), allocatable btij
integer, dimension(:,:), allocatable querng
integer, dimension(:,:), allocatable nirr
integer, dimension(:,:), allocatable pringord
integer noa
integer ntsub
integer, dimension(:,:,:), allocatable edgea
double precision, dimension(:,:,:,:), allocatable gij
double precision, dimension(:), allocatable grtot
character(len=15) ntmp3
integer, dimension(:), allocatable degeneracy
double precision, dimension(:,:), allocatable ctype
double precision, dimension(:,:), allocatable etypea
double precision, dimension(:), allocatable ectypat
integer taillt
double precision, dimension(:), allocatable s_length
integer nsbg
double precision p1
integer, dimension(:), allocatable valid
character(len=15) ntmp2
character(len=15) nomy
double precision, dimension(:), allocatable eabl
type(lattice), pointer nbox
double precision, dimension(:), allocatable red
logical ring_p5
integer nbonds
integer id1
double precision gr_cutoff
integer, dimension(:,:), allocatable corta
double precision, dimension(3) ril
integer gtbsize
integer idbd
integer, dimension(:,:), allocatable edget
double precision, dimension(:), allocatable ectype
integer taillr
double precision, dimension(:), allocatable xs
integer, dimension(:), allocatable tot_gsa
integer maxat
integer molats
double precision p2
integer path
double precision z
double precision, dimension(2) c_box
integer numa
integer, dimension(:,:,:), allocatable la_count
integer idskt
integer err
integer dtv
integer, dimension(:), allocatable rpat
double precision, dimension(:,:), allocatable cor
double precision, dimension(:), allocatable modq
integer, dimension(:), allocatable res_list
double precision, dimension(:), allocatable evmax
double precision delta_ang
character(len=16) spind
logical calc_r4
double precision, dimension(3) rij
integer, dimension(:,:), allocatable tisp
type(lattice), dimension(:), allocatable, target the_box
integer, dimension(:,:,:), allocatable tdsa
integer idr
double precision, dimension(:), allocatable mac
double precision ecfreev
integer nsp_by_step
character(len=12), dimension(:,:,:), allocatable lgeo
integer anbonds
logical nohp
integer, dimension(:,:,:), allocatable indsring
double precision, dimension(:), allocatable tdfft
character(len=15) nom1
double precision, dimension(:,:), allocatable qvect
integer, dimension(:,:), allocatable pring
integer nstp
double precision, dimension(:,:,:), allocatable d2dir
integer, dimension(:,:), allocatable atrmsn
type(pixel), dimension(:), allocatable testpix
character(len=15) nomx
double precision, dimension(:), allocatable irred
logical saut
integer, dimension(:), allocatable ngsa
double precision, dimension(:), allocatable cabl
double precision, dimension(:,:,:), allocatable d2ijnac
integer, dimension(:,:), allocatable tot_geomsa
integer maxn
double precision, dimension(3) pmin
integer indexmsf
character(len=15) nstep
integer idsq
integer, dimension(:,:), allocatable edgeta
double precision, dimension(:,:,:), allocatable ss_ij
integer, dimension(:,:,:), allocatable voisj
double precision, dimension(:), allocatable irrat
integer maxst
double precision, dimension(:,:,:,:), allocatable dn
integer l_tot
double precision norm_tot
integer, dimension(:,:), allocatable tda
integer, dimension(:,:), allocatable deft
double precision, dimension(:,:,:), allocatable gr_ij
integer, dimension(:,:), allocatable tetra
integer, dimension(:,:,:,:), allocatable, target sringord
integer grnum
double precision, dimension(3) dab
integer, dimension(:,:,:,:), allocatable, target ringord
double precision, dimension(:,:,:), allocatable d2ij
character(len=9) progname
character(len=15) nom
double precision, dimension(:,:), allocatable etda
double precision dil
double precision, dimension(:), allocatable moyrat
logical addspec
integer nsub
double precision dij
integer, dimension(:,:,:), allocatable matpna
integer sum_index
double precision vij
double precision, dimension(:), allocatable xggrtot
logical alc
double precision, dimension(2) go
double precision, dimension(:,:), allocatable num_gsa
integer, dimension(:,:,:), allocatable pna
logical frac
double precision, dimension(:), allocatable xscattl
double precision, dimension(:,:), allocatable drift
integer minst
integer idgrfft
character(len=2), dimension(:), allocatable ftab
double precision p3
logical runsearch
logical calc_rings
double precision, dimension(:,:), allocatable epna
character(len=15) szone
integer idri
double precision, dimension(:), allocatable shell_vol
double precision meanvol
integer noe
integer bdnum
integer, dimension(:,:,:), allocatable cornera
integer, dimension(:,:), allocatable vref
double precision, dimension(:), allocatable qvectz
integer, dimension(:,:), allocatable atrmin
character(len=15) ezone
integer abc
integer, dimension(:,:), allocatable defta
integer counter
integer ndx
character(len=15) edate
double precision, dimension(:), allocatable ectat
double precision, dimension(:), allocatable ectabl
integer, dimension(:,:), allocatable, target indr
logical doampat
logical dosearch
integer, dimension(:,:,:), allocatable indring
double precision, dimension(:), allocatable rnamin
integer nod
integer msnum
logical ring_p3
logical aaaa
integer, dimension(:,:), allocatable vpat
logical calc_strings
integer, dimension(:,:,:), allocatable stpna
integer, dimension(:,:,:), allocatable sna
double precision, dimension(:,:), allocatable gr_cut
integer, dimension(:), allocatable npring
character(len=15) nom2
integer, dimension(:), allocatable lp_geom
double precision, dimension(:), allocatable dfft
integer loc
double precision, dimension(:), allocatable gfft
double precision, dimension(:), allocatable etabl
integer, dimension(:), allocatable atomid
double precision y
double precision, dimension(:,:), allocatable etype
integer spirr
character(len=2) a1
double precision, dimension(:), allocatable dabl
double precision, dimension(:), allocatable r_dw
double precision, dimension(:), allocatable gr_t
integer idch
double precision, dimension(:,:), allocatable detype
double precision mbox
integer, dimension(:,:), allocatable nirrat
double precision tstat
character(len=15) stime
double precision, dimension(:), allocatable rnamax
double precision sinus_fact_rmax
double precision, dimension(:,:,:), allocatable gqbt
integer annum
character(len=2), dimension(:), allocatable label
integer, dimension(:), allocatable cpat
double precision time_tot
integer, dimension(:), allocatable apna
integer ang_i
logical overall_cubic
logical tomo
logical factatrmin
logical calc_r1
double precision, dimension(:), allocatable redat
integer taillh
double precision, dimension(:), allocatable drn
integer, dimension(:,:,:), allocatable, target ringsaved
integer idgr
integer tlt
integer number_of_a
integer, dimension(:), allocatable ringstat
double precision, dimension(:), allocatable sa_count
double precision, dimension(:), allocatable trn
double precision, dimension(3) rcm2
double precision, dimension(:), allocatable dtabl
integer sqnum
integer, dimension(:), allocatable ntetra
integer, dimension(:,:,:), allocatable corner
integer, dimension(:), allocatable lot
double precision, dimension(:,:,:), allocatable ecart_type
logical pirr
integer minat
double precision, dimension(:), allocatable rvdw
double precision sinus_phi
logical pbc
integer, dimension(:), allocatable matdist
double precision, dimension(:,:), allocatable detypea
integer, dimension(:,:), allocatable, target nring
integer nsp
double precision, dimension(2) gn
double precision qvmax
integer, dimension(:,:), allocatable lt_geom
integer, dimension(:), allocatable tigl
double precision, dimension(:,:,:), allocatable sij
double precision, dimension(:), allocatable xgrtot
double precision, dimension(3) cutfv
integer, dimension(:,:,:), allocatable, target sringsaved
integer, dimension(:), allocatable togl
double precision, dimension(:,:,:), allocatable cornac
logical calc_r0
logical no_homo
integer, dimension(:), allocatable queue
integer, dimension(:,:), allocatable geom_la
double precision, parameter pi
double precision, dimension(:), allocatable sik
integer, dimension(:,:), allocatable cort
integer, dimension(:,:), allocatable tiida
character(len=40) noms
double precision, dimension(3) r2cor
integer taille
integer rinum
integer number_of_i
Definition global.h:964