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,
POINTER :: fixed_atoms(:) => null(), fixed_type(:) => null(), fixed_mol_type(:) => null()
72 LOGICAL,
POINTER :: fixed_restraint(:) => null()
73 REAL(kind=
dp),
POINTER :: fixed_k0(:) => null()
75 INTEGER :: freeze_qm = -1, freeze_mm = -1, freeze_qm_type = -1, freeze_mm_type = -1
76 LOGICAL :: fixed_mm_restraint = .false., fixed_qm_restraint = .false.
77 REAL(kind=
dp) :: fixed_mm_k0 = -1.0_dp, fixed_qm_k0 = -1.0_dp
79 LOGICAL,
POINTER :: fixed_mol_restraint(:) => null()
80 REAL(kind=
dp),
POINTER :: fixed_mol_k0(:) => null()
81 CHARACTER(LEN=default_string_length),
POINTER :: fixed_molnames(:) => null()
82 LOGICAL,
POINTER,
DIMENSION(:) :: fixed_exclude_qm => null(), fixed_exclude_mm => null()
84 INTEGER :: nconst_colv = -1
85 INTEGER,
POINTER :: const_colv_mol(:) => null()
86 CHARACTER(LEN=default_string_length),
POINTER :: const_colv_molname(:) => null()
87 REAL(kind=
dp),
POINTER :: const_colv_target(:) => null()
88 REAL(kind=
dp),
POINTER :: const_colv_target_growth(:) => null()
90 LOGICAL,
POINTER :: colv_intermolecular(:) => null()
91 LOGICAL,
POINTER :: colv_restraint(:) => null()
92 REAL(kind=
dp),
POINTER :: colv_k0(:) => null()
93 LOGICAL,
POINTER,
DIMENSION(:) :: colv_exclude_qm => null(), colv_exclude_mm => null()
95 INTEGER :: nconst_g33 = -1
96 INTEGER,
POINTER :: const_g33_mol(:) => null()
97 CHARACTER(LEN=default_string_length),
POINTER :: const_g33_molname(:) => null()
98 INTEGER,
POINTER :: const_g33_a(:) => null()
99 INTEGER,
POINTER :: const_g33_b(:) => null()
100 INTEGER,
POINTER :: const_g33_c(:) => null()
101 REAL(kind=
dp),
POINTER :: const_g33_dab(:) => null()
102 REAL(kind=
dp),
POINTER :: const_g33_dac(:) => null()
103 REAL(kind=
dp),
POINTER :: const_g33_dbc(:) => null()
104 LOGICAL,
POINTER :: g33_intermolecular(:) => null()
105 LOGICAL,
POINTER :: g33_restraint(:) => null()
106 REAL(kind=
dp),
POINTER :: g33_k0(:) => null()
107 LOGICAL,
POINTER,
DIMENSION(:) :: g33_exclude_qm => null(), g33_exclude_mm => null()
109 INTEGER :: nconst_g46 = -1
110 INTEGER,
POINTER :: const_g46_mol(:) => null()
111 CHARACTER(LEN=default_string_length),
POINTER :: const_g46_molname(:) => null()
112 INTEGER,
POINTER :: const_g46_a(:) => null()
113 INTEGER,
POINTER :: const_g46_b(:) => null()
114 INTEGER,
POINTER :: const_g46_c(:) => null()
115 INTEGER,
POINTER :: const_g46_d(:) => null()
116 REAL(kind=
dp),
POINTER :: const_g46_dab(:) => null()
117 REAL(kind=
dp),
POINTER :: const_g46_dac(:) => null()
118 REAL(kind=
dp),
POINTER :: const_g46_dbc(:) => null()
119 REAL(kind=
dp),
POINTER :: const_g46_dad(:) => null()
120 REAL(kind=
dp),
POINTER :: const_g46_dbd(:) => null()
121 REAL(kind=
dp),
POINTER :: const_g46_dcd(:) => null()
122 LOGICAL,
POINTER :: g46_intermolecular(:) => null()
123 LOGICAL,
POINTER :: g46_restraint(:) => null()
124 REAL(kind=
dp),
POINTER :: g46_k0(:) => null()
125 LOGICAL,
POINTER,
DIMENSION(:) :: g46_exclude_qm => null(), g46_exclude_mm => null()
127 INTEGER :: nconst_vsite = -1
128 INTEGER,
POINTER :: const_vsite_mol(:) => null()
129 CHARACTER(LEN=default_string_length),
POINTER :: const_vsite_molname(:) => null()
130 INTEGER,
POINTER :: const_vsite_a(:) => null()
131 INTEGER,
POINTER :: const_vsite_b(:) => null()
132 INTEGER,
POINTER :: const_vsite_c(:) => null()
133 INTEGER,
POINTER :: const_vsite_d(:) => null()
134 REAL(kind=
dp),
POINTER :: const_vsite_wbc(:) => null()
135 REAL(kind=
dp),
POINTER :: const_vsite_wdc(:) => null()
136 LOGICAL,
POINTER :: vsite_intermolecular(:) => null()
137 LOGICAL,
POINTER :: vsite_restraint(:) => null()
138 REAL(kind=
dp),
POINTER :: vsite_k0(:) => null()
139 LOGICAL,
POINTER,
DIMENSION(:) :: vsite_exclude_qm => null(), vsite_exclude_mm => null()
147 TYPE(
cell_type),
POINTER :: cell => null(), cell_ref => null(), cell_muc => null()
149 INTEGER :: conn_type = -1
150 INTEGER :: coord_type = -1
151 INTEGER :: exclude_vdw = -1
152 INTEGER :: exclude_ei = -1
153 INTEGER :: bondparm_type = -1
155 INTEGER :: natoms = -1, natom_type = -1, natom_muc = -1
156 INTEGER :: nmol = -1, nmol_type = -1, nmol_conn = -1
158 LOGICAL :: aa_element = .false.
159 LOGICAL :: molname_generated = .false.
160 REAL(kind=
dp) :: bondparm_factor = -1.0_dp
161 LOGICAL :: create_molecules = .false.
162 LOGICAL :: reorder_atom = .false.
163 LOGICAL :: molecules_check = .false.
164 LOGICAL :: coordinate = .false.
165 LOGICAL :: use_g96_velocity = .false.
166 CHARACTER(LEN=default_path_length) :: coord_file_name =
""
167 CHARACTER(LEN=default_path_length) :: conn_file_name =
""
168 LOGICAL :: const_atom = .false.
169 LOGICAL :: const_hydr = .false.
170 LOGICAL :: const_colv = .false.
171 LOGICAL :: const_33 = .false.
172 LOGICAL :: const_46 = .false.
173 LOGICAL :: const_vsite = .false.
174 LOGICAL :: charge_occup = .false.
175 LOGICAL :: charge_beta = .false.
176 LOGICAL :: charge_extended = .false.
177 LOGICAL :: para_res = .false.
182 INTEGER,
DIMENSION(:),
POINTER :: constr => null()
186 INTEGER :: frag_start = -1
187 INTEGER :: frag_end = -1
200 CHARACTER(len=*),
PARAMETER,
PRIVATE :: modulen =
'topology_types'
251 topology%molname_generated = .false.
258 NULLIFY (
topology%atom_info%id_molname)
259 NULLIFY (
topology%atom_info%id_resname)
261 NULLIFY (
topology%atom_info%id_atmname)
262 NULLIFY (
topology%atom_info%id_atom_names)
264 NULLIFY (
topology%atom_info%map_mol_typ)
265 NULLIFY (
topology%atom_info%map_mol_num)
266 NULLIFY (
topology%atom_info%map_mol_res)
267 NULLIFY (
topology%atom_info%atm_charge)
268 NULLIFY (
topology%atom_info%atm_mass)
271 NULLIFY (
topology%atom_info%id_element)
277 NULLIFY (
topology%conn_info%bond_type)
281 NULLIFY (
topology%conn_info%theta_a)
282 NULLIFY (
topology%conn_info%theta_b)
283 NULLIFY (
topology%conn_info%theta_c)
284 NULLIFY (
topology%conn_info%theta_type)
289 NULLIFY (
topology%conn_info%phi_type)
294 NULLIFY (
topology%conn_info%impr_type)
297 NULLIFY (
topology%conn_info%c_bond_a)
298 NULLIFY (
topology%conn_info%c_bond_b)
299 NULLIFY (
topology%conn_info%c_bond_type)
303 CALL init_constraint(
topology%cons_info)
312 SUBROUTINE init_constraint(constraint_info)
317 constraint_info%hbonds_restraint = .false.
319 constraint_info%nfixed_atoms = 0
322 NULLIFY (constraint_info%fixed_atoms)
323 NULLIFY (constraint_info%fixed_type)
324 NULLIFY (constraint_info%fixed_mol_type)
325 NULLIFY (constraint_info%fixed_molnames)
326 NULLIFY (constraint_info%fixed_restraint)
327 NULLIFY (constraint_info%fixed_k0)
328 NULLIFY (constraint_info%fixed_mol_restraint)
329 NULLIFY (constraint_info%fixed_mol_k0)
330 NULLIFY (constraint_info%fixed_exclude_qm, constraint_info%fixed_exclude_mm)
332 constraint_info%nconst_colv = 0
333 NULLIFY (constraint_info%colvar_set)
334 NULLIFY (constraint_info%const_colv_mol)
335 NULLIFY (constraint_info%const_colv_molname)
336 NULLIFY (constraint_info%const_colv_target)
337 NULLIFY (constraint_info%const_colv_target_growth)
338 NULLIFY (constraint_info%colv_intermolecular)
339 NULLIFY (constraint_info%colv_restraint)
340 NULLIFY (constraint_info%colv_k0)
341 NULLIFY (constraint_info%colv_exclude_qm, constraint_info%colv_exclude_mm)
343 constraint_info%nconst_g33 = 0
344 NULLIFY (constraint_info%const_g33_mol)
345 NULLIFY (constraint_info%const_g33_molname)
346 NULLIFY (constraint_info%const_g33_a)
347 NULLIFY (constraint_info%const_g33_b)
348 NULLIFY (constraint_info%const_g33_c)
349 NULLIFY (constraint_info%const_g33_dab)
350 NULLIFY (constraint_info%const_g33_dac)
351 NULLIFY (constraint_info%const_g33_dbc)
352 NULLIFY (constraint_info%g33_intermolecular)
353 NULLIFY (constraint_info%g33_restraint)
354 NULLIFY (constraint_info%g33_k0)
355 NULLIFY (constraint_info%g33_exclude_qm, constraint_info%g33_exclude_mm)
357 constraint_info%nconst_g46 = 0
358 NULLIFY (constraint_info%const_g46_mol)
359 NULLIFY (constraint_info%const_g46_molname)
360 NULLIFY (constraint_info%const_g46_a)
361 NULLIFY (constraint_info%const_g46_b)
362 NULLIFY (constraint_info%const_g46_c)
363 NULLIFY (constraint_info%const_g46_d)
364 NULLIFY (constraint_info%const_g46_dab)
365 NULLIFY (constraint_info%const_g46_dac)
366 NULLIFY (constraint_info%const_g46_dbc)
367 NULLIFY (constraint_info%const_g46_dad)
368 NULLIFY (constraint_info%const_g46_dbd)
369 NULLIFY (constraint_info%const_g46_dcd)
370 NULLIFY (constraint_info%g46_intermolecular)
371 NULLIFY (constraint_info%g46_restraint)
372 NULLIFY (constraint_info%g46_k0)
373 NULLIFY (constraint_info%g46_exclude_qm, constraint_info%g46_exclude_mm)
375 constraint_info%nconst_vsite = 0
376 NULLIFY (constraint_info%const_vsite_mol)
377 NULLIFY (constraint_info%const_vsite_molname)
378 NULLIFY (constraint_info%const_vsite_a)
379 NULLIFY (constraint_info%const_vsite_b)
380 NULLIFY (constraint_info%const_vsite_c)
381 NULLIFY (constraint_info%const_vsite_d)
382 NULLIFY (constraint_info%const_vsite_wbc)
383 NULLIFY (constraint_info%const_vsite_wdc)
384 NULLIFY (constraint_info%vsite_intermolecular)
385 NULLIFY (constraint_info%vsite_restraint)
386 NULLIFY (constraint_info%vsite_k0)
387 NULLIFY (constraint_info%vsite_exclude_qm, constraint_info%vsite_exclude_mm)
389 END SUBROUTINE init_constraint
404 IF (
ASSOCIATED(
topology%atom_info%id_molname))
THEN
405 DEALLOCATE (
topology%atom_info%id_molname)
407 IF (
ASSOCIATED(
topology%atom_info%id_resname))
THEN
408 DEALLOCATE (
topology%atom_info%id_resname)
410 IF (
ASSOCIATED(
topology%atom_info%resid))
THEN
411 DEALLOCATE (
topology%atom_info%resid)
413 IF (
ASSOCIATED(
topology%atom_info%id_atmname))
THEN
414 DEALLOCATE (
topology%atom_info%id_atmname)
416 IF (
ASSOCIATED(
topology%atom_info%id_atom_names))
THEN
417 DEALLOCATE (
topology%atom_info%id_atom_names)
419 IF (
ASSOCIATED(
topology%atom_info%r))
THEN
422 IF (
ASSOCIATED(
topology%atom_info%map_mol_typ))
THEN
423 DEALLOCATE (
topology%atom_info%map_mol_typ)
425 IF (
ASSOCIATED(
topology%atom_info%map_mol_num))
THEN
426 DEALLOCATE (
topology%atom_info%map_mol_num)
428 IF (
ASSOCIATED(
topology%atom_info%map_mol_res))
THEN
429 DEALLOCATE (
topology%atom_info%map_mol_res)
431 IF (
ASSOCIATED(
topology%atom_info%atm_charge))
THEN
432 DEALLOCATE (
topology%atom_info%atm_charge)
434 IF (
ASSOCIATED(
topology%atom_info%atm_mass))
THEN
435 DEALLOCATE (
topology%atom_info%atm_mass)
437 IF (
ASSOCIATED(
topology%atom_info%occup))
THEN
438 DEALLOCATE (
topology%atom_info%occup)
440 IF (
ASSOCIATED(
topology%atom_info%beta))
THEN
441 DEALLOCATE (
topology%atom_info%beta)
443 IF (
ASSOCIATED(
topology%atom_info%id_element))
THEN
444 DEALLOCATE (
topology%atom_info%id_element)
449 IF (
ASSOCIATED(
topology%conn_info%bond_a))
THEN
450 DEALLOCATE (
topology%conn_info%bond_a)
452 IF (
ASSOCIATED(
topology%conn_info%bond_b))
THEN
453 DEALLOCATE (
topology%conn_info%bond_b)
455 IF (
ASSOCIATED(
topology%conn_info%bond_type))
THEN
456 DEALLOCATE (
topology%conn_info%bond_type)
458 IF (
ASSOCIATED(
topology%conn_info%ub_a))
THEN
459 DEALLOCATE (
topology%conn_info%ub_a)
461 IF (
ASSOCIATED(
topology%conn_info%ub_b))
THEN
462 DEALLOCATE (
topology%conn_info%ub_b)
464 IF (
ASSOCIATED(
topology%conn_info%ub_c))
THEN
465 DEALLOCATE (
topology%conn_info%ub_c)
467 IF (
ASSOCIATED(
topology%conn_info%theta_a))
THEN
468 DEALLOCATE (
topology%conn_info%theta_a)
470 IF (
ASSOCIATED(
topology%conn_info%theta_b))
THEN
471 DEALLOCATE (
topology%conn_info%theta_b)
473 IF (
ASSOCIATED(
topology%conn_info%theta_c))
THEN
474 DEALLOCATE (
topology%conn_info%theta_c)
476 IF (
ASSOCIATED(
topology%conn_info%theta_type))
THEN
477 DEALLOCATE (
topology%conn_info%theta_type)
479 IF (
ASSOCIATED(
topology%conn_info%phi_a))
THEN
480 DEALLOCATE (
topology%conn_info%phi_a)
482 IF (
ASSOCIATED(
topology%conn_info%phi_b))
THEN
483 DEALLOCATE (
topology%conn_info%phi_b)
485 IF (
ASSOCIATED(
topology%conn_info%phi_c))
THEN
486 DEALLOCATE (
topology%conn_info%phi_c)
488 IF (
ASSOCIATED(
topology%conn_info%phi_d))
THEN
489 DEALLOCATE (
topology%conn_info%phi_d)
491 IF (
ASSOCIATED(
topology%conn_info%phi_type))
THEN
492 DEALLOCATE (
topology%conn_info%phi_type)
494 IF (
ASSOCIATED(
topology%conn_info%impr_a))
THEN
495 DEALLOCATE (
topology%conn_info%impr_a)
497 IF (
ASSOCIATED(
topology%conn_info%impr_b))
THEN
498 DEALLOCATE (
topology%conn_info%impr_b)
500 IF (
ASSOCIATED(
topology%conn_info%impr_c))
THEN
501 DEALLOCATE (
topology%conn_info%impr_c)
503 IF (
ASSOCIATED(
topology%conn_info%impr_d))
THEN
504 DEALLOCATE (
topology%conn_info%impr_d)
506 IF (
ASSOCIATED(
topology%conn_info%impr_type))
THEN
507 DEALLOCATE (
topology%conn_info%impr_type)
509 IF (
ASSOCIATED(
topology%conn_info%onfo_a))
THEN
510 DEALLOCATE (
topology%conn_info%onfo_a)
512 IF (
ASSOCIATED(
topology%conn_info%onfo_b))
THEN
513 DEALLOCATE (
topology%conn_info%onfo_b)
515 IF (
ASSOCIATED(
topology%conn_info%c_bond_a))
THEN
516 DEALLOCATE (
topology%conn_info%c_bond_a)
518 IF (
ASSOCIATED(
topology%conn_info%c_bond_b))
THEN
519 DEALLOCATE (
topology%conn_info%c_bond_b)
521 IF (
ASSOCIATED(
topology%conn_info%c_bond_type))
THEN
522 DEALLOCATE (
topology%conn_info%c_bond_type)
527 IF (
ASSOCIATED(
topology%cons_info)) &
528 CALL deallocate_constraint(
topology%cons_info)
535 IF (
ASSOCIATED(
topology%atom_info))
THEN
538 IF (
ASSOCIATED(
topology%conn_info))
THEN
541 IF (
ASSOCIATED(
topology%cons_info))
THEN
547 IF (
ASSOCIATED(
topology%fragments))
THEN
559 SUBROUTINE deallocate_constraint(constraint_info)
566 IF (
ASSOCIATED(constraint_info%fixed_atoms))
THEN
567 DEALLOCATE (constraint_info%fixed_atoms)
569 IF (
ASSOCIATED(constraint_info%fixed_type))
THEN
570 DEALLOCATE (constraint_info%fixed_type)
572 IF (
ASSOCIATED(constraint_info%fixed_molnames))
THEN
573 DEALLOCATE (constraint_info%fixed_molnames)
575 IF (
ASSOCIATED(constraint_info%fixed_mol_type))
THEN
576 DEALLOCATE (constraint_info%fixed_mol_type)
578 IF (
ASSOCIATED(constraint_info%fixed_restraint))
THEN
579 DEALLOCATE (constraint_info%fixed_restraint)
581 IF (
ASSOCIATED(constraint_info%fixed_k0))
THEN
582 DEALLOCATE (constraint_info%fixed_k0)
584 IF (
ASSOCIATED(constraint_info%fixed_mol_restraint))
THEN
585 DEALLOCATE (constraint_info%fixed_mol_restraint)
587 IF (
ASSOCIATED(constraint_info%fixed_mol_k0))
THEN
588 DEALLOCATE (constraint_info%fixed_mol_k0)
590 IF (
ASSOCIATED(constraint_info%fixed_exclude_qm))
THEN
591 DEALLOCATE (constraint_info%fixed_exclude_qm)
593 IF (
ASSOCIATED(constraint_info%fixed_exclude_mm))
THEN
594 DEALLOCATE (constraint_info%fixed_exclude_mm)
597 IF (
ASSOCIATED(constraint_info%colvar_set))
THEN
598 DO i = 1,
SIZE(constraint_info%colvar_set)
599 IF (
ASSOCIATED(constraint_info%colvar_set(i)%colvar))
THEN
601 NULLIFY (constraint_info%colvar_set(i)%colvar)
604 DEALLOCATE (constraint_info%colvar_set)
606 IF (
ASSOCIATED(constraint_info%const_colv_mol))
THEN
607 DEALLOCATE (constraint_info%const_colv_mol)
609 IF (
ASSOCIATED(constraint_info%const_colv_molname))
THEN
610 DEALLOCATE (constraint_info%const_colv_molname)
612 IF (
ASSOCIATED(constraint_info%const_colv_target))
THEN
613 DEALLOCATE (constraint_info%const_colv_target)
615 IF (
ASSOCIATED(constraint_info%const_colv_target_growth))
THEN
616 DEALLOCATE (constraint_info%const_colv_target_growth)
618 IF (
ASSOCIATED(constraint_info%colv_intermolecular))
THEN
619 DEALLOCATE (constraint_info%colv_intermolecular)
621 IF (
ASSOCIATED(constraint_info%colv_restraint))
THEN
622 DEALLOCATE (constraint_info%colv_restraint)
624 IF (
ASSOCIATED(constraint_info%colv_k0))
THEN
625 DEALLOCATE (constraint_info%colv_k0)
627 IF (
ASSOCIATED(constraint_info%colv_exclude_qm))
THEN
628 DEALLOCATE (constraint_info%colv_exclude_qm)
630 IF (
ASSOCIATED(constraint_info%colv_exclude_mm))
THEN
631 DEALLOCATE (constraint_info%colv_exclude_mm)
634 IF (
ASSOCIATED(constraint_info%const_g33_mol))
THEN
635 DEALLOCATE (constraint_info%const_g33_mol)
637 IF (
ASSOCIATED(constraint_info%const_g33_molname))
THEN
638 DEALLOCATE (constraint_info%const_g33_molname)
640 IF (
ASSOCIATED(constraint_info%const_g33_a))
THEN
641 DEALLOCATE (constraint_info%const_g33_a)
643 IF (
ASSOCIATED(constraint_info%const_g33_b))
THEN
644 DEALLOCATE (constraint_info%const_g33_b)
646 IF (
ASSOCIATED(constraint_info%const_g33_c))
THEN
647 DEALLOCATE (constraint_info%const_g33_c)
649 IF (
ASSOCIATED(constraint_info%const_g33_dab))
THEN
650 DEALLOCATE (constraint_info%const_g33_dab)
652 IF (
ASSOCIATED(constraint_info%const_g33_dac))
THEN
653 DEALLOCATE (constraint_info%const_g33_dac)
655 IF (
ASSOCIATED(constraint_info%const_g33_dbc))
THEN
656 DEALLOCATE (constraint_info%const_g33_dbc)
658 IF (
ASSOCIATED(constraint_info%g33_intermolecular))
THEN
659 DEALLOCATE (constraint_info%g33_intermolecular)
661 IF (
ASSOCIATED(constraint_info%g33_restraint))
THEN
662 DEALLOCATE (constraint_info%g33_restraint)
664 IF (
ASSOCIATED(constraint_info%g33_k0))
THEN
665 DEALLOCATE (constraint_info%g33_k0)
667 IF (
ASSOCIATED(constraint_info%g33_exclude_qm))
THEN
668 DEALLOCATE (constraint_info%g33_exclude_qm)
670 IF (
ASSOCIATED(constraint_info%g33_exclude_mm))
THEN
671 DEALLOCATE (constraint_info%g33_exclude_mm)
674 IF (
ASSOCIATED(constraint_info%const_g46_mol))
THEN
675 DEALLOCATE (constraint_info%const_g46_mol)
677 IF (
ASSOCIATED(constraint_info%const_g46_molname))
THEN
678 DEALLOCATE (constraint_info%const_g46_molname)
680 IF (
ASSOCIATED(constraint_info%const_g46_a))
THEN
681 DEALLOCATE (constraint_info%const_g46_a)
683 IF (
ASSOCIATED(constraint_info%const_g46_b))
THEN
684 DEALLOCATE (constraint_info%const_g46_b)
686 IF (
ASSOCIATED(constraint_info%const_g46_c))
THEN
687 DEALLOCATE (constraint_info%const_g46_c)
689 IF (
ASSOCIATED(constraint_info%const_g46_d))
THEN
690 DEALLOCATE (constraint_info%const_g46_d)
692 IF (
ASSOCIATED(constraint_info%const_g46_dab))
THEN
693 DEALLOCATE (constraint_info%const_g46_dab)
695 IF (
ASSOCIATED(constraint_info%const_g46_dac))
THEN
696 DEALLOCATE (constraint_info%const_g46_dac)
698 IF (
ASSOCIATED(constraint_info%const_g46_dbc))
THEN
699 DEALLOCATE (constraint_info%const_g46_dbc)
701 IF (
ASSOCIATED(constraint_info%const_g46_dad))
THEN
702 DEALLOCATE (constraint_info%const_g46_dad)
704 IF (
ASSOCIATED(constraint_info%const_g46_dbd))
THEN
705 DEALLOCATE (constraint_info%const_g46_dbd)
707 IF (
ASSOCIATED(constraint_info%const_g46_dcd))
THEN
708 DEALLOCATE (constraint_info%const_g46_dcd)
710 IF (
ASSOCIATED(constraint_info%g46_intermolecular))
THEN
711 DEALLOCATE (constraint_info%g46_intermolecular)
713 IF (
ASSOCIATED(constraint_info%g46_restraint))
THEN
714 DEALLOCATE (constraint_info%g46_restraint)
716 IF (
ASSOCIATED(constraint_info%g46_k0))
THEN
717 DEALLOCATE (constraint_info%g46_k0)
719 IF (
ASSOCIATED(constraint_info%g46_exclude_qm))
THEN
720 DEALLOCATE (constraint_info%g46_exclude_qm)
722 IF (
ASSOCIATED(constraint_info%g46_exclude_mm))
THEN
723 DEALLOCATE (constraint_info%g46_exclude_mm)
726 IF (
ASSOCIATED(constraint_info%const_vsite_mol))
THEN
727 DEALLOCATE (constraint_info%const_vsite_mol)
729 IF (
ASSOCIATED(constraint_info%const_vsite_molname))
THEN
730 DEALLOCATE (constraint_info%const_vsite_molname)
732 IF (
ASSOCIATED(constraint_info%const_vsite_a))
THEN
733 DEALLOCATE (constraint_info%const_vsite_a)
735 IF (
ASSOCIATED(constraint_info%const_vsite_b))
THEN
736 DEALLOCATE (constraint_info%const_vsite_b)
738 IF (
ASSOCIATED(constraint_info%const_vsite_c))
THEN
739 DEALLOCATE (constraint_info%const_vsite_c)
741 IF (
ASSOCIATED(constraint_info%const_vsite_d))
THEN
742 DEALLOCATE (constraint_info%const_vsite_d)
744 IF (
ASSOCIATED(constraint_info%const_vsite_wbc))
THEN
745 DEALLOCATE (constraint_info%const_vsite_wbc)
747 IF (
ASSOCIATED(constraint_info%const_vsite_wdc))
THEN
748 DEALLOCATE (constraint_info%const_vsite_wdc)
750 IF (
ASSOCIATED(constraint_info%vsite_intermolecular))
THEN
751 DEALLOCATE (constraint_info%vsite_intermolecular)
753 IF (
ASSOCIATED(constraint_info%vsite_restraint))
THEN
754 DEALLOCATE (constraint_info%vsite_restraint)
756 IF (
ASSOCIATED(constraint_info%vsite_k0))
THEN
757 DEALLOCATE (constraint_info%vsite_k0)
759 IF (
ASSOCIATED(constraint_info%vsite_exclude_qm))
THEN
760 DEALLOCATE (constraint_info%vsite_exclude_qm)
762 IF (
ASSOCIATED(constraint_info%vsite_exclude_mm))
THEN
763 DEALLOCATE (constraint_info%vsite_exclude_mm)
765 END SUBROUTINE deallocate_constraint
780 IF (
ASSOCIATED(atom_info%id_molname))
THEN
781 DEALLOCATE (atom_info%id_molname)
784 IF (
ASSOCIATED(atom_info%resid))
THEN
785 DEALLOCATE (atom_info%resid)
788 IF (
ASSOCIATED(atom_info%id_resname))
THEN
789 DEALLOCATE (atom_info%id_resname)
792 IF (
ASSOCIATED(atom_info%id_atmname))
THEN
793 DEALLOCATE (atom_info%id_atmname)
796 IF (
ASSOCIATED(atom_info%atm_charge))
THEN
797 DEALLOCATE (atom_info%atm_charge)
800 IF (
ASSOCIATED(atom_info%atm_mass))
THEN
801 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.