30#include "./base/base_uses.f90"
36 INTEGER,
DIMENSION(:),
POINTER :: id_molname => null(), &
37 id_resname => null(), &
38 id_atmname => null(), &
39 id_atom_names => null(), &
41 INTEGER,
POINTER :: resid(:) => null()
42 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: r => null()
43 INTEGER,
POINTER :: map_mol_typ(:) => null()
44 INTEGER,
POINTER :: map_mol_num(:) => null()
45 INTEGER,
POINTER :: map_mol_res(:) => null()
46 REAL(kind=
dp),
POINTER :: atm_charge(:) => null()
47 REAL(kind=
dp),
POINTER :: atm_mass(:) => null()
48 REAL(kind=
dp),
POINTER :: occup(:) => null()
49 REAL(kind=
dp),
POINTER :: beta(:) => null()
54 INTEGER,
POINTER :: bond_a(:) => null(), bond_b(:) => null(), bond_type(:) => null()
55 INTEGER,
POINTER :: ub_a(:) => null(), ub_b(:) => null(), ub_c(:) => null()
56 INTEGER,
POINTER :: theta_a(:) => null(), theta_b(:) => null(), theta_c(:) => null(), theta_type(:) => null()
57 INTEGER,
POINTER :: phi_a(:) => null(), phi_b(:) => null(), phi_c(:) => null(), phi_d(:) => null(), phi_type(:) => null()
58 INTEGER,
POINTER :: impr_a(:) => null(), impr_b(:) => null(), impr_c(:) => null(), &
59 impr_d(:) => null(), impr_type(:) => null()
60 INTEGER,
POINTER :: onfo_a(:) => null(), onfo_b(:) => null()
61 INTEGER,
POINTER :: c_bond_a(:) => null(), c_bond_b(:) => null(), c_bond_type(:) => null()
67 LOGICAL :: hbonds_restraint = .false.
68 REAL(kind=
dp) :: hbonds_k0 = -1.0_dp
70 INTEGER :: nfixed_atoms = -1
71 INTEGER,
DIMENSION(:),
POINTER :: fixed_atoms => null(), fixed_type => null(), fixed_mol_type => null()
72 LOGICAL,
DIMENSION(:),
POINTER :: fixed_restraint => null()
73 REAL(kind=
dp),
DIMENSION(:),
POINTER :: fixed_k0 => null()
75 INTEGER :: freeze_qm = -1, freeze_mm = -1, freeze_qm_type = -1, freeze_mm_type = -1
77 LOGICAL :: fixed_mm_restraint = .false., fixed_qm_restraint = .false.
78 REAL(kind=
dp) :: fixed_mm_k0 = -1.0_dp, fixed_qm_k0 = -1.0_dp
80 LOGICAL,
POINTER :: fixed_mol_restraint(:) => null()
81 REAL(kind=
dp),
POINTER :: fixed_mol_k0(:) => null()
82 CHARACTER(LEN=default_string_length),
POINTER :: fixed_molnames(:) => null()
83 LOGICAL,
POINTER,
DIMENSION(:) :: fixed_exclude_qm => null(), fixed_exclude_mm => null()
85 INTEGER :: nconst_colv = -1
86 INTEGER,
POINTER :: const_colv_mol(:) => null()
87 CHARACTER(LEN=default_string_length),
POINTER :: const_colv_molname(:) => null()
88 REAL(kind=
dp),
POINTER :: const_colv_target(:) => null()
89 REAL(kind=
dp),
POINTER :: const_colv_target_growth(:) => null()
91 LOGICAL,
POINTER :: colv_intermolecular(:) => null()
92 LOGICAL,
POINTER :: colv_restraint(:) => null()
93 REAL(kind=
dp),
POINTER :: colv_k0(:) => null()
94 LOGICAL,
POINTER,
DIMENSION(:) :: colv_exclude_qm => null(), colv_exclude_mm => null()
96 INTEGER :: nconst_g33 = -1
97 INTEGER,
POINTER :: const_g33_mol(:) => null()
98 CHARACTER(LEN=default_string_length),
POINTER :: const_g33_molname(:) => null()
99 INTEGER,
POINTER :: const_g33_a(:) => null()
100 INTEGER,
POINTER :: const_g33_b(:) => null()
101 INTEGER,
POINTER :: const_g33_c(:) => null()
102 REAL(kind=
dp),
POINTER :: const_g33_dab(:) => null()
103 REAL(kind=
dp),
POINTER :: const_g33_dac(:) => null()
104 REAL(kind=
dp),
POINTER :: const_g33_dbc(:) => null()
105 LOGICAL,
POINTER :: g33_intermolecular(:) => null()
106 LOGICAL,
POINTER :: g33_restraint(:) => null()
107 REAL(kind=
dp),
POINTER :: g33_k0(:) => null()
108 LOGICAL,
POINTER,
DIMENSION(:) :: g33_exclude_qm => null(), g33_exclude_mm => null()
110 INTEGER :: nconst_g46 = -1
111 INTEGER,
POINTER :: const_g46_mol(:) => null()
112 CHARACTER(LEN=default_string_length),
POINTER :: const_g46_molname(:) => null()
113 INTEGER,
POINTER :: const_g46_a(:) => null()
114 INTEGER,
POINTER :: const_g46_b(:) => null()
115 INTEGER,
POINTER :: const_g46_c(:) => null()
116 INTEGER,
POINTER :: const_g46_d(:) => null()
117 REAL(kind=
dp),
POINTER :: const_g46_dab(:) => null()
118 REAL(kind=
dp),
POINTER :: const_g46_dac(:) => null()
119 REAL(kind=
dp),
POINTER :: const_g46_dbc(:) => null()
120 REAL(kind=
dp),
POINTER :: const_g46_dad(:) => null()
121 REAL(kind=
dp),
POINTER :: const_g46_dbd(:) => null()
122 REAL(kind=
dp),
POINTER :: const_g46_dcd(:) => null()
123 LOGICAL,
POINTER :: g46_intermolecular(:) => null()
124 LOGICAL,
POINTER :: g46_restraint(:) => null()
125 REAL(kind=
dp),
POINTER :: g46_k0(:) => null()
126 LOGICAL,
POINTER,
DIMENSION(:) :: g46_exclude_qm => null(), g46_exclude_mm => null()
128 INTEGER :: nconst_vsite = -1
129 INTEGER,
POINTER :: const_vsite_mol(:) => null()
130 CHARACTER(LEN=default_string_length),
POINTER :: const_vsite_molname(:) => null()
131 INTEGER,
POINTER :: const_vsite_a(:) => null()
132 INTEGER,
POINTER :: const_vsite_b(:) => null()
133 INTEGER,
POINTER :: const_vsite_c(:) => null()
134 INTEGER,
POINTER :: const_vsite_d(:) => null()
135 REAL(kind=
dp),
POINTER :: const_vsite_wbc(:) => null()
136 REAL(kind=
dp),
POINTER :: const_vsite_wdc(:) => null()
137 LOGICAL,
POINTER :: vsite_intermolecular(:) => null()
138 LOGICAL,
POINTER :: vsite_restraint(:) => null()
139 REAL(kind=
dp),
POINTER :: vsite_k0(:) => null()
140 LOGICAL,
POINTER,
DIMENSION(:) :: vsite_exclude_qm => null(), vsite_exclude_mm => null()
148 TYPE(
cell_type),
POINTER :: cell => null(), cell_ref => null(), cell_muc => null()
150 INTEGER :: conn_type = -1
151 INTEGER :: coord_type = -1
152 INTEGER :: exclude_vdw = -1
153 INTEGER :: exclude_ei = -1
154 INTEGER :: bondparm_type = -1
156 INTEGER :: natoms = -1, natom_type = -1, natom_muc = -1
157 INTEGER :: nmol = -1, nmol_type = -1, nmol_conn = -1
159 LOGICAL :: aa_element = .false.
160 LOGICAL :: molname_generated = .false.
161 REAL(kind=
dp) :: bondparm_factor = -1.0_dp
162 LOGICAL :: create_molecules = .false.
163 LOGICAL :: reorder_atom = .false.
164 LOGICAL :: molecules_check = .false.
165 LOGICAL :: coordinate = .false.
166 LOGICAL :: use_g96_velocity = .false.
167 CHARACTER(LEN=default_path_length) :: coord_file_name =
""
168 CHARACTER(LEN=default_path_length) :: conn_file_name =
""
169 LOGICAL :: const_atom = .false.
170 LOGICAL :: const_hydr = .false.
171 LOGICAL :: const_colv = .false.
172 LOGICAL :: const_33 = .false.
173 LOGICAL :: const_46 = .false.
174 LOGICAL :: const_vsite = .false.
175 LOGICAL :: charge_occup = .false.
176 LOGICAL :: charge_beta = .false.
177 LOGICAL :: charge_extended = .false.
178 LOGICAL :: para_res = .false.
183 INTEGER,
DIMENSION(:),
POINTER :: constr => null()
187 INTEGER :: frag_start = -1
188 INTEGER :: frag_end = -1
201 CHARACTER(len=*),
PARAMETER,
PRIVATE :: modulen =
'topology_types'
252 topology%molname_generated = .false.
259 NULLIFY (
topology%atom_info%id_molname)
260 NULLIFY (
topology%atom_info%id_resname)
262 NULLIFY (
topology%atom_info%id_atmname)
263 NULLIFY (
topology%atom_info%id_atom_names)
265 NULLIFY (
topology%atom_info%map_mol_typ)
266 NULLIFY (
topology%atom_info%map_mol_num)
267 NULLIFY (
topology%atom_info%map_mol_res)
268 NULLIFY (
topology%atom_info%atm_charge)
269 NULLIFY (
topology%atom_info%atm_mass)
272 NULLIFY (
topology%atom_info%id_element)
278 NULLIFY (
topology%conn_info%bond_type)
282 NULLIFY (
topology%conn_info%theta_a)
283 NULLIFY (
topology%conn_info%theta_b)
284 NULLIFY (
topology%conn_info%theta_c)
285 NULLIFY (
topology%conn_info%theta_type)
290 NULLIFY (
topology%conn_info%phi_type)
295 NULLIFY (
topology%conn_info%impr_type)
298 NULLIFY (
topology%conn_info%c_bond_a)
299 NULLIFY (
topology%conn_info%c_bond_b)
300 NULLIFY (
topology%conn_info%c_bond_type)
304 CALL init_constraint(
topology%cons_info)
313 SUBROUTINE init_constraint(constraint_info)
318 constraint_info%hbonds_restraint = .false.
320 constraint_info%nfixed_atoms = 0
323 NULLIFY (constraint_info%fixed_atoms)
324 NULLIFY (constraint_info%fixed_type)
325 NULLIFY (constraint_info%fixed_mol_type)
326 NULLIFY (constraint_info%fixed_molnames)
327 NULLIFY (constraint_info%fixed_restraint)
328 NULLIFY (constraint_info%fixed_k0)
329 NULLIFY (constraint_info%fixed_mol_restraint)
330 NULLIFY (constraint_info%fixed_mol_k0)
331 NULLIFY (constraint_info%fixed_exclude_qm, constraint_info%fixed_exclude_mm)
333 constraint_info%nconst_colv = 0
334 NULLIFY (constraint_info%colvar_set)
335 NULLIFY (constraint_info%const_colv_mol)
336 NULLIFY (constraint_info%const_colv_molname)
337 NULLIFY (constraint_info%const_colv_target)
338 NULLIFY (constraint_info%const_colv_target_growth)
339 NULLIFY (constraint_info%colv_intermolecular)
340 NULLIFY (constraint_info%colv_restraint)
341 NULLIFY (constraint_info%colv_k0)
342 NULLIFY (constraint_info%colv_exclude_qm, constraint_info%colv_exclude_mm)
344 constraint_info%nconst_g33 = 0
345 NULLIFY (constraint_info%const_g33_mol)
346 NULLIFY (constraint_info%const_g33_molname)
347 NULLIFY (constraint_info%const_g33_a)
348 NULLIFY (constraint_info%const_g33_b)
349 NULLIFY (constraint_info%const_g33_c)
350 NULLIFY (constraint_info%const_g33_dab)
351 NULLIFY (constraint_info%const_g33_dac)
352 NULLIFY (constraint_info%const_g33_dbc)
353 NULLIFY (constraint_info%g33_intermolecular)
354 NULLIFY (constraint_info%g33_restraint)
355 NULLIFY (constraint_info%g33_k0)
356 NULLIFY (constraint_info%g33_exclude_qm, constraint_info%g33_exclude_mm)
358 constraint_info%nconst_g46 = 0
359 NULLIFY (constraint_info%const_g46_mol)
360 NULLIFY (constraint_info%const_g46_molname)
361 NULLIFY (constraint_info%const_g46_a)
362 NULLIFY (constraint_info%const_g46_b)
363 NULLIFY (constraint_info%const_g46_c)
364 NULLIFY (constraint_info%const_g46_d)
365 NULLIFY (constraint_info%const_g46_dab)
366 NULLIFY (constraint_info%const_g46_dac)
367 NULLIFY (constraint_info%const_g46_dbc)
368 NULLIFY (constraint_info%const_g46_dad)
369 NULLIFY (constraint_info%const_g46_dbd)
370 NULLIFY (constraint_info%const_g46_dcd)
371 NULLIFY (constraint_info%g46_intermolecular)
372 NULLIFY (constraint_info%g46_restraint)
373 NULLIFY (constraint_info%g46_k0)
374 NULLIFY (constraint_info%g46_exclude_qm, constraint_info%g46_exclude_mm)
376 constraint_info%nconst_vsite = 0
377 NULLIFY (constraint_info%const_vsite_mol)
378 NULLIFY (constraint_info%const_vsite_molname)
379 NULLIFY (constraint_info%const_vsite_a)
380 NULLIFY (constraint_info%const_vsite_b)
381 NULLIFY (constraint_info%const_vsite_c)
382 NULLIFY (constraint_info%const_vsite_d)
383 NULLIFY (constraint_info%const_vsite_wbc)
384 NULLIFY (constraint_info%const_vsite_wdc)
385 NULLIFY (constraint_info%vsite_intermolecular)
386 NULLIFY (constraint_info%vsite_restraint)
387 NULLIFY (constraint_info%vsite_k0)
388 NULLIFY (constraint_info%vsite_exclude_qm, constraint_info%vsite_exclude_mm)
390 END SUBROUTINE init_constraint
405 IF (
ASSOCIATED(
topology%atom_info%id_molname))
THEN
406 DEALLOCATE (
topology%atom_info%id_molname)
408 IF (
ASSOCIATED(
topology%atom_info%id_resname))
THEN
409 DEALLOCATE (
topology%atom_info%id_resname)
411 IF (
ASSOCIATED(
topology%atom_info%resid))
THEN
412 DEALLOCATE (
topology%atom_info%resid)
414 IF (
ASSOCIATED(
topology%atom_info%id_atmname))
THEN
415 DEALLOCATE (
topology%atom_info%id_atmname)
417 IF (
ASSOCIATED(
topology%atom_info%id_atom_names))
THEN
418 DEALLOCATE (
topology%atom_info%id_atom_names)
420 IF (
ASSOCIATED(
topology%atom_info%r))
THEN
423 IF (
ASSOCIATED(
topology%atom_info%map_mol_typ))
THEN
424 DEALLOCATE (
topology%atom_info%map_mol_typ)
426 IF (
ASSOCIATED(
topology%atom_info%map_mol_num))
THEN
427 DEALLOCATE (
topology%atom_info%map_mol_num)
429 IF (
ASSOCIATED(
topology%atom_info%map_mol_res))
THEN
430 DEALLOCATE (
topology%atom_info%map_mol_res)
432 IF (
ASSOCIATED(
topology%atom_info%atm_charge))
THEN
433 DEALLOCATE (
topology%atom_info%atm_charge)
435 IF (
ASSOCIATED(
topology%atom_info%atm_mass))
THEN
436 DEALLOCATE (
topology%atom_info%atm_mass)
438 IF (
ASSOCIATED(
topology%atom_info%occup))
THEN
439 DEALLOCATE (
topology%atom_info%occup)
441 IF (
ASSOCIATED(
topology%atom_info%beta))
THEN
442 DEALLOCATE (
topology%atom_info%beta)
444 IF (
ASSOCIATED(
topology%atom_info%id_element))
THEN
445 DEALLOCATE (
topology%atom_info%id_element)
450 IF (
ASSOCIATED(
topology%conn_info%bond_a))
THEN
451 DEALLOCATE (
topology%conn_info%bond_a)
453 IF (
ASSOCIATED(
topology%conn_info%bond_b))
THEN
454 DEALLOCATE (
topology%conn_info%bond_b)
456 IF (
ASSOCIATED(
topology%conn_info%bond_type))
THEN
457 DEALLOCATE (
topology%conn_info%bond_type)
459 IF (
ASSOCIATED(
topology%conn_info%ub_a))
THEN
460 DEALLOCATE (
topology%conn_info%ub_a)
462 IF (
ASSOCIATED(
topology%conn_info%ub_b))
THEN
463 DEALLOCATE (
topology%conn_info%ub_b)
465 IF (
ASSOCIATED(
topology%conn_info%ub_c))
THEN
466 DEALLOCATE (
topology%conn_info%ub_c)
468 IF (
ASSOCIATED(
topology%conn_info%theta_a))
THEN
469 DEALLOCATE (
topology%conn_info%theta_a)
471 IF (
ASSOCIATED(
topology%conn_info%theta_b))
THEN
472 DEALLOCATE (
topology%conn_info%theta_b)
474 IF (
ASSOCIATED(
topology%conn_info%theta_c))
THEN
475 DEALLOCATE (
topology%conn_info%theta_c)
477 IF (
ASSOCIATED(
topology%conn_info%theta_type))
THEN
478 DEALLOCATE (
topology%conn_info%theta_type)
480 IF (
ASSOCIATED(
topology%conn_info%phi_a))
THEN
481 DEALLOCATE (
topology%conn_info%phi_a)
483 IF (
ASSOCIATED(
topology%conn_info%phi_b))
THEN
484 DEALLOCATE (
topology%conn_info%phi_b)
486 IF (
ASSOCIATED(
topology%conn_info%phi_c))
THEN
487 DEALLOCATE (
topology%conn_info%phi_c)
489 IF (
ASSOCIATED(
topology%conn_info%phi_d))
THEN
490 DEALLOCATE (
topology%conn_info%phi_d)
492 IF (
ASSOCIATED(
topology%conn_info%phi_type))
THEN
493 DEALLOCATE (
topology%conn_info%phi_type)
495 IF (
ASSOCIATED(
topology%conn_info%impr_a))
THEN
496 DEALLOCATE (
topology%conn_info%impr_a)
498 IF (
ASSOCIATED(
topology%conn_info%impr_b))
THEN
499 DEALLOCATE (
topology%conn_info%impr_b)
501 IF (
ASSOCIATED(
topology%conn_info%impr_c))
THEN
502 DEALLOCATE (
topology%conn_info%impr_c)
504 IF (
ASSOCIATED(
topology%conn_info%impr_d))
THEN
505 DEALLOCATE (
topology%conn_info%impr_d)
507 IF (
ASSOCIATED(
topology%conn_info%impr_type))
THEN
508 DEALLOCATE (
topology%conn_info%impr_type)
510 IF (
ASSOCIATED(
topology%conn_info%onfo_a))
THEN
511 DEALLOCATE (
topology%conn_info%onfo_a)
513 IF (
ASSOCIATED(
topology%conn_info%onfo_b))
THEN
514 DEALLOCATE (
topology%conn_info%onfo_b)
516 IF (
ASSOCIATED(
topology%conn_info%c_bond_a))
THEN
517 DEALLOCATE (
topology%conn_info%c_bond_a)
519 IF (
ASSOCIATED(
topology%conn_info%c_bond_b))
THEN
520 DEALLOCATE (
topology%conn_info%c_bond_b)
522 IF (
ASSOCIATED(
topology%conn_info%c_bond_type))
THEN
523 DEALLOCATE (
topology%conn_info%c_bond_type)
528 IF (
ASSOCIATED(
topology%cons_info))
THEN
529 CALL deallocate_constraint(
topology%cons_info)
537 IF (
ASSOCIATED(
topology%atom_info))
THEN
540 IF (
ASSOCIATED(
topology%conn_info))
THEN
543 IF (
ASSOCIATED(
topology%cons_info))
THEN
549 IF (
ASSOCIATED(
topology%fragments))
THEN
561 SUBROUTINE deallocate_constraint(constraint_info)
568 IF (
ASSOCIATED(constraint_info%fixed_atoms))
THEN
569 DEALLOCATE (constraint_info%fixed_atoms)
571 IF (
ASSOCIATED(constraint_info%fixed_type))
THEN
572 DEALLOCATE (constraint_info%fixed_type)
574 IF (
ASSOCIATED(constraint_info%fixed_molnames))
THEN
575 DEALLOCATE (constraint_info%fixed_molnames)
577 IF (
ASSOCIATED(constraint_info%fixed_mol_type))
THEN
578 DEALLOCATE (constraint_info%fixed_mol_type)
580 IF (
ASSOCIATED(constraint_info%fixed_restraint))
THEN
581 DEALLOCATE (constraint_info%fixed_restraint)
583 IF (
ASSOCIATED(constraint_info%fixed_k0))
THEN
584 DEALLOCATE (constraint_info%fixed_k0)
586 IF (
ASSOCIATED(constraint_info%fixed_mol_restraint))
THEN
587 DEALLOCATE (constraint_info%fixed_mol_restraint)
589 IF (
ASSOCIATED(constraint_info%fixed_mol_k0))
THEN
590 DEALLOCATE (constraint_info%fixed_mol_k0)
592 IF (
ASSOCIATED(constraint_info%fixed_exclude_qm))
THEN
593 DEALLOCATE (constraint_info%fixed_exclude_qm)
595 IF (
ASSOCIATED(constraint_info%fixed_exclude_mm))
THEN
596 DEALLOCATE (constraint_info%fixed_exclude_mm)
599 IF (
ASSOCIATED(constraint_info%colvar_set))
THEN
600 DO i = 1,
SIZE(constraint_info%colvar_set)
601 IF (
ASSOCIATED(constraint_info%colvar_set(i)%colvar))
THEN
603 NULLIFY (constraint_info%colvar_set(i)%colvar)
606 DEALLOCATE (constraint_info%colvar_set)
608 IF (
ASSOCIATED(constraint_info%const_colv_mol))
THEN
609 DEALLOCATE (constraint_info%const_colv_mol)
611 IF (
ASSOCIATED(constraint_info%const_colv_molname))
THEN
612 DEALLOCATE (constraint_info%const_colv_molname)
614 IF (
ASSOCIATED(constraint_info%const_colv_target))
THEN
615 DEALLOCATE (constraint_info%const_colv_target)
617 IF (
ASSOCIATED(constraint_info%const_colv_target_growth))
THEN
618 DEALLOCATE (constraint_info%const_colv_target_growth)
620 IF (
ASSOCIATED(constraint_info%colv_intermolecular))
THEN
621 DEALLOCATE (constraint_info%colv_intermolecular)
623 IF (
ASSOCIATED(constraint_info%colv_restraint))
THEN
624 DEALLOCATE (constraint_info%colv_restraint)
626 IF (
ASSOCIATED(constraint_info%colv_k0))
THEN
627 DEALLOCATE (constraint_info%colv_k0)
629 IF (
ASSOCIATED(constraint_info%colv_exclude_qm))
THEN
630 DEALLOCATE (constraint_info%colv_exclude_qm)
632 IF (
ASSOCIATED(constraint_info%colv_exclude_mm))
THEN
633 DEALLOCATE (constraint_info%colv_exclude_mm)
636 IF (
ASSOCIATED(constraint_info%const_g33_mol))
THEN
637 DEALLOCATE (constraint_info%const_g33_mol)
639 IF (
ASSOCIATED(constraint_info%const_g33_molname))
THEN
640 DEALLOCATE (constraint_info%const_g33_molname)
642 IF (
ASSOCIATED(constraint_info%const_g33_a))
THEN
643 DEALLOCATE (constraint_info%const_g33_a)
645 IF (
ASSOCIATED(constraint_info%const_g33_b))
THEN
646 DEALLOCATE (constraint_info%const_g33_b)
648 IF (
ASSOCIATED(constraint_info%const_g33_c))
THEN
649 DEALLOCATE (constraint_info%const_g33_c)
651 IF (
ASSOCIATED(constraint_info%const_g33_dab))
THEN
652 DEALLOCATE (constraint_info%const_g33_dab)
654 IF (
ASSOCIATED(constraint_info%const_g33_dac))
THEN
655 DEALLOCATE (constraint_info%const_g33_dac)
657 IF (
ASSOCIATED(constraint_info%const_g33_dbc))
THEN
658 DEALLOCATE (constraint_info%const_g33_dbc)
660 IF (
ASSOCIATED(constraint_info%g33_intermolecular))
THEN
661 DEALLOCATE (constraint_info%g33_intermolecular)
663 IF (
ASSOCIATED(constraint_info%g33_restraint))
THEN
664 DEALLOCATE (constraint_info%g33_restraint)
666 IF (
ASSOCIATED(constraint_info%g33_k0))
THEN
667 DEALLOCATE (constraint_info%g33_k0)
669 IF (
ASSOCIATED(constraint_info%g33_exclude_qm))
THEN
670 DEALLOCATE (constraint_info%g33_exclude_qm)
672 IF (
ASSOCIATED(constraint_info%g33_exclude_mm))
THEN
673 DEALLOCATE (constraint_info%g33_exclude_mm)
676 IF (
ASSOCIATED(constraint_info%const_g46_mol))
THEN
677 DEALLOCATE (constraint_info%const_g46_mol)
679 IF (
ASSOCIATED(constraint_info%const_g46_molname))
THEN
680 DEALLOCATE (constraint_info%const_g46_molname)
682 IF (
ASSOCIATED(constraint_info%const_g46_a))
THEN
683 DEALLOCATE (constraint_info%const_g46_a)
685 IF (
ASSOCIATED(constraint_info%const_g46_b))
THEN
686 DEALLOCATE (constraint_info%const_g46_b)
688 IF (
ASSOCIATED(constraint_info%const_g46_c))
THEN
689 DEALLOCATE (constraint_info%const_g46_c)
691 IF (
ASSOCIATED(constraint_info%const_g46_d))
THEN
692 DEALLOCATE (constraint_info%const_g46_d)
694 IF (
ASSOCIATED(constraint_info%const_g46_dab))
THEN
695 DEALLOCATE (constraint_info%const_g46_dab)
697 IF (
ASSOCIATED(constraint_info%const_g46_dac))
THEN
698 DEALLOCATE (constraint_info%const_g46_dac)
700 IF (
ASSOCIATED(constraint_info%const_g46_dbc))
THEN
701 DEALLOCATE (constraint_info%const_g46_dbc)
703 IF (
ASSOCIATED(constraint_info%const_g46_dad))
THEN
704 DEALLOCATE (constraint_info%const_g46_dad)
706 IF (
ASSOCIATED(constraint_info%const_g46_dbd))
THEN
707 DEALLOCATE (constraint_info%const_g46_dbd)
709 IF (
ASSOCIATED(constraint_info%const_g46_dcd))
THEN
710 DEALLOCATE (constraint_info%const_g46_dcd)
712 IF (
ASSOCIATED(constraint_info%g46_intermolecular))
THEN
713 DEALLOCATE (constraint_info%g46_intermolecular)
715 IF (
ASSOCIATED(constraint_info%g46_restraint))
THEN
716 DEALLOCATE (constraint_info%g46_restraint)
718 IF (
ASSOCIATED(constraint_info%g46_k0))
THEN
719 DEALLOCATE (constraint_info%g46_k0)
721 IF (
ASSOCIATED(constraint_info%g46_exclude_qm))
THEN
722 DEALLOCATE (constraint_info%g46_exclude_qm)
724 IF (
ASSOCIATED(constraint_info%g46_exclude_mm))
THEN
725 DEALLOCATE (constraint_info%g46_exclude_mm)
728 IF (
ASSOCIATED(constraint_info%const_vsite_mol))
THEN
729 DEALLOCATE (constraint_info%const_vsite_mol)
731 IF (
ASSOCIATED(constraint_info%const_vsite_molname))
THEN
732 DEALLOCATE (constraint_info%const_vsite_molname)
734 IF (
ASSOCIATED(constraint_info%const_vsite_a))
THEN
735 DEALLOCATE (constraint_info%const_vsite_a)
737 IF (
ASSOCIATED(constraint_info%const_vsite_b))
THEN
738 DEALLOCATE (constraint_info%const_vsite_b)
740 IF (
ASSOCIATED(constraint_info%const_vsite_c))
THEN
741 DEALLOCATE (constraint_info%const_vsite_c)
743 IF (
ASSOCIATED(constraint_info%const_vsite_d))
THEN
744 DEALLOCATE (constraint_info%const_vsite_d)
746 IF (
ASSOCIATED(constraint_info%const_vsite_wbc))
THEN
747 DEALLOCATE (constraint_info%const_vsite_wbc)
749 IF (
ASSOCIATED(constraint_info%const_vsite_wdc))
THEN
750 DEALLOCATE (constraint_info%const_vsite_wdc)
752 IF (
ASSOCIATED(constraint_info%vsite_intermolecular))
THEN
753 DEALLOCATE (constraint_info%vsite_intermolecular)
755 IF (
ASSOCIATED(constraint_info%vsite_restraint))
THEN
756 DEALLOCATE (constraint_info%vsite_restraint)
758 IF (
ASSOCIATED(constraint_info%vsite_k0))
THEN
759 DEALLOCATE (constraint_info%vsite_k0)
761 IF (
ASSOCIATED(constraint_info%vsite_exclude_qm))
THEN
762 DEALLOCATE (constraint_info%vsite_exclude_qm)
764 IF (
ASSOCIATED(constraint_info%vsite_exclude_mm))
THEN
765 DEALLOCATE (constraint_info%vsite_exclude_mm)
767 END SUBROUTINE deallocate_constraint
782 IF (
ASSOCIATED(atom_info%id_molname))
THEN
783 DEALLOCATE (atom_info%id_molname)
786 IF (
ASSOCIATED(atom_info%resid))
THEN
787 DEALLOCATE (atom_info%resid)
790 IF (
ASSOCIATED(atom_info%id_resname))
THEN
791 DEALLOCATE (atom_info%id_resname)
794 IF (
ASSOCIATED(atom_info%id_atmname))
THEN
795 DEALLOCATE (atom_info%id_atmname)
798 IF (
ASSOCIATED(atom_info%atm_charge))
THEN
799 DEALLOCATE (atom_info%atm_charge)
802 IF (
ASSOCIATED(atom_info%atm_mass))
THEN
803 DEALLOCATE (atom_info%atm_mass)
Handles all functions related to the CELL.
subroutine, public cell_release(cell)
releases the given cell (see doc/ReferenceCounting.html)
Initialize the collective variables types.
recursive subroutine, public colvar_release(colvar)
releases the memory that might have been allocated by the colvar
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
integer, parameter, public default_path_length
subroutine, public deallocate_topology(topology)
Just DEALLOCATE all the stuff
subroutine, public pre_read_topology(topology)
Deallocate possibly allocated arrays before reading topology.
subroutine, public init_topology(topology)
Just NULLIFY and zero all the stuff
Control for reading in different topologies and coordinates.
Type defining parameters related to the simulation cell.