30#include "./base/base_uses.f90"
36 INTEGER,
DIMENSION(:),
POINTER :: id_molname => null()
37 INTEGER,
DIMENSION(:),
POINTER :: id_resname => null()
38 INTEGER,
DIMENSION(:),
POINTER :: id_atmname => null()
39 INTEGER,
DIMENSION(:),
POINTER :: id_atom_names => null()
40 INTEGER,
DIMENSION(:),
POINTER :: id_element => 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()
148 INTEGER :: conn_type = -1
149 INTEGER :: coord_type = -1
150 INTEGER :: exclude_vdw = -1
151 INTEGER :: exclude_ei = -1
152 INTEGER :: bondparm_type = -1
154 INTEGER :: natoms = -1, natom_type = -1
155 INTEGER :: nmol = -1, nmol_type = -1, nmol_conn = -1
157 LOGICAL :: aa_element = .false.
158 LOGICAL :: molname_generated = .false.
159 REAL(kind=
dp) :: bondparm_factor = -1.0_dp
160 LOGICAL :: create_molecules = .false.
161 LOGICAL :: reorder_atom = .false.
162 LOGICAL :: molecules_check = .false.
163 LOGICAL :: coordinate = .false.
164 LOGICAL :: use_g96_velocity = .false.
165 CHARACTER(LEN=default_path_length) :: coord_file_name =
""
166 CHARACTER(LEN=default_path_length) :: conn_file_name =
""
167 LOGICAL :: const_atom = .false.
168 LOGICAL :: const_hydr = .false.
169 LOGICAL :: const_colv = .false.
170 LOGICAL :: const_33 = .false.
171 LOGICAL :: const_46 = .false.
172 LOGICAL :: const_vsite = .false.
173 LOGICAL :: charge_occup = .false.
174 LOGICAL :: charge_beta = .false.
175 LOGICAL :: charge_extended = .false.
176 LOGICAL :: para_res = .false.
181 INTEGER,
DIMENSION(:),
POINTER :: constr => null()
194 CHARACTER(len=*),
PARAMETER,
PRIVATE :: modulen =
'topology_types'
244 topology%molname_generated = .false.
251 NULLIFY (
topology%atom_info%id_molname)
252 NULLIFY (
topology%atom_info%id_resname)
254 NULLIFY (
topology%atom_info%id_atmname)
255 NULLIFY (
topology%atom_info%id_atom_names)
257 NULLIFY (
topology%atom_info%map_mol_typ)
258 NULLIFY (
topology%atom_info%map_mol_num)
259 NULLIFY (
topology%atom_info%map_mol_res)
260 NULLIFY (
topology%atom_info%atm_charge)
261 NULLIFY (
topology%atom_info%atm_mass)
264 NULLIFY (
topology%atom_info%id_element)
270 NULLIFY (
topology%conn_info%bond_type)
274 NULLIFY (
topology%conn_info%theta_a)
275 NULLIFY (
topology%conn_info%theta_b)
276 NULLIFY (
topology%conn_info%theta_c)
277 NULLIFY (
topology%conn_info%theta_type)
282 NULLIFY (
topology%conn_info%phi_type)
287 NULLIFY (
topology%conn_info%impr_type)
290 NULLIFY (
topology%conn_info%c_bond_a)
291 NULLIFY (
topology%conn_info%c_bond_b)
292 NULLIFY (
topology%conn_info%c_bond_type)
296 CALL init_constraint(
topology%cons_info)
305 SUBROUTINE init_constraint(constraint_info)
310 constraint_info%hbonds_restraint = .false.
312 constraint_info%nfixed_atoms = 0
315 NULLIFY (constraint_info%fixed_atoms)
316 NULLIFY (constraint_info%fixed_type)
317 NULLIFY (constraint_info%fixed_mol_type)
318 NULLIFY (constraint_info%fixed_molnames)
319 NULLIFY (constraint_info%fixed_restraint)
320 NULLIFY (constraint_info%fixed_k0)
321 NULLIFY (constraint_info%fixed_mol_restraint)
322 NULLIFY (constraint_info%fixed_mol_k0)
323 NULLIFY (constraint_info%fixed_exclude_qm, constraint_info%fixed_exclude_mm)
325 constraint_info%nconst_colv = 0
326 NULLIFY (constraint_info%colvar_set)
327 NULLIFY (constraint_info%const_colv_mol)
328 NULLIFY (constraint_info%const_colv_molname)
329 NULLIFY (constraint_info%const_colv_target)
330 NULLIFY (constraint_info%const_colv_target_growth)
331 NULLIFY (constraint_info%colv_intermolecular)
332 NULLIFY (constraint_info%colv_restraint)
333 NULLIFY (constraint_info%colv_k0)
334 NULLIFY (constraint_info%colv_exclude_qm, constraint_info%colv_exclude_mm)
336 constraint_info%nconst_g33 = 0
337 NULLIFY (constraint_info%const_g33_mol)
338 NULLIFY (constraint_info%const_g33_molname)
339 NULLIFY (constraint_info%const_g33_a)
340 NULLIFY (constraint_info%const_g33_b)
341 NULLIFY (constraint_info%const_g33_c)
342 NULLIFY (constraint_info%const_g33_dab)
343 NULLIFY (constraint_info%const_g33_dac)
344 NULLIFY (constraint_info%const_g33_dbc)
345 NULLIFY (constraint_info%g33_intermolecular)
346 NULLIFY (constraint_info%g33_restraint)
347 NULLIFY (constraint_info%g33_k0)
348 NULLIFY (constraint_info%g33_exclude_qm, constraint_info%g33_exclude_mm)
350 constraint_info%nconst_g46 = 0
351 NULLIFY (constraint_info%const_g46_mol)
352 NULLIFY (constraint_info%const_g46_molname)
353 NULLIFY (constraint_info%const_g46_a)
354 NULLIFY (constraint_info%const_g46_b)
355 NULLIFY (constraint_info%const_g46_c)
356 NULLIFY (constraint_info%const_g46_d)
357 NULLIFY (constraint_info%const_g46_dab)
358 NULLIFY (constraint_info%const_g46_dac)
359 NULLIFY (constraint_info%const_g46_dbc)
360 NULLIFY (constraint_info%const_g46_dad)
361 NULLIFY (constraint_info%const_g46_dbd)
362 NULLIFY (constraint_info%const_g46_dcd)
363 NULLIFY (constraint_info%g46_intermolecular)
364 NULLIFY (constraint_info%g46_restraint)
365 NULLIFY (constraint_info%g46_k0)
366 NULLIFY (constraint_info%g46_exclude_qm, constraint_info%g46_exclude_mm)
368 constraint_info%nconst_vsite = 0
369 NULLIFY (constraint_info%const_vsite_mol)
370 NULLIFY (constraint_info%const_vsite_molname)
371 NULLIFY (constraint_info%const_vsite_a)
372 NULLIFY (constraint_info%const_vsite_b)
373 NULLIFY (constraint_info%const_vsite_c)
374 NULLIFY (constraint_info%const_vsite_d)
375 NULLIFY (constraint_info%const_vsite_wbc)
376 NULLIFY (constraint_info%const_vsite_wdc)
377 NULLIFY (constraint_info%vsite_intermolecular)
378 NULLIFY (constraint_info%vsite_restraint)
379 NULLIFY (constraint_info%vsite_k0)
380 NULLIFY (constraint_info%vsite_exclude_qm, constraint_info%vsite_exclude_mm)
382 END SUBROUTINE init_constraint
397 IF (
ASSOCIATED(
topology%atom_info%id_molname))
THEN
398 DEALLOCATE (
topology%atom_info%id_molname)
400 IF (
ASSOCIATED(
topology%atom_info%id_resname))
THEN
401 DEALLOCATE (
topology%atom_info%id_resname)
403 IF (
ASSOCIATED(
topology%atom_info%resid))
THEN
404 DEALLOCATE (
topology%atom_info%resid)
406 IF (
ASSOCIATED(
topology%atom_info%id_atmname))
THEN
407 DEALLOCATE (
topology%atom_info%id_atmname)
409 IF (
ASSOCIATED(
topology%atom_info%id_atom_names))
THEN
410 DEALLOCATE (
topology%atom_info%id_atom_names)
412 IF (
ASSOCIATED(
topology%atom_info%r))
THEN
415 IF (
ASSOCIATED(
topology%atom_info%map_mol_typ))
THEN
416 DEALLOCATE (
topology%atom_info%map_mol_typ)
418 IF (
ASSOCIATED(
topology%atom_info%map_mol_num))
THEN
419 DEALLOCATE (
topology%atom_info%map_mol_num)
421 IF (
ASSOCIATED(
topology%atom_info%map_mol_res))
THEN
422 DEALLOCATE (
topology%atom_info%map_mol_res)
424 IF (
ASSOCIATED(
topology%atom_info%atm_charge))
THEN
425 DEALLOCATE (
topology%atom_info%atm_charge)
427 IF (
ASSOCIATED(
topology%atom_info%atm_mass))
THEN
428 DEALLOCATE (
topology%atom_info%atm_mass)
430 IF (
ASSOCIATED(
topology%atom_info%occup))
THEN
431 DEALLOCATE (
topology%atom_info%occup)
433 IF (
ASSOCIATED(
topology%atom_info%beta))
THEN
434 DEALLOCATE (
topology%atom_info%beta)
436 IF (
ASSOCIATED(
topology%atom_info%id_element))
THEN
437 DEALLOCATE (
topology%atom_info%id_element)
442 IF (
ASSOCIATED(
topology%conn_info%bond_a))
THEN
443 DEALLOCATE (
topology%conn_info%bond_a)
445 IF (
ASSOCIATED(
topology%conn_info%bond_b))
THEN
446 DEALLOCATE (
topology%conn_info%bond_b)
448 IF (
ASSOCIATED(
topology%conn_info%bond_type))
THEN
449 DEALLOCATE (
topology%conn_info%bond_type)
451 IF (
ASSOCIATED(
topology%conn_info%ub_a))
THEN
452 DEALLOCATE (
topology%conn_info%ub_a)
454 IF (
ASSOCIATED(
topology%conn_info%ub_b))
THEN
455 DEALLOCATE (
topology%conn_info%ub_b)
457 IF (
ASSOCIATED(
topology%conn_info%ub_c))
THEN
458 DEALLOCATE (
topology%conn_info%ub_c)
460 IF (
ASSOCIATED(
topology%conn_info%theta_a))
THEN
461 DEALLOCATE (
topology%conn_info%theta_a)
463 IF (
ASSOCIATED(
topology%conn_info%theta_b))
THEN
464 DEALLOCATE (
topology%conn_info%theta_b)
466 IF (
ASSOCIATED(
topology%conn_info%theta_c))
THEN
467 DEALLOCATE (
topology%conn_info%theta_c)
469 IF (
ASSOCIATED(
topology%conn_info%theta_type))
THEN
470 DEALLOCATE (
topology%conn_info%theta_type)
472 IF (
ASSOCIATED(
topology%conn_info%phi_a))
THEN
473 DEALLOCATE (
topology%conn_info%phi_a)
475 IF (
ASSOCIATED(
topology%conn_info%phi_b))
THEN
476 DEALLOCATE (
topology%conn_info%phi_b)
478 IF (
ASSOCIATED(
topology%conn_info%phi_c))
THEN
479 DEALLOCATE (
topology%conn_info%phi_c)
481 IF (
ASSOCIATED(
topology%conn_info%phi_d))
THEN
482 DEALLOCATE (
topology%conn_info%phi_d)
484 IF (
ASSOCIATED(
topology%conn_info%phi_type))
THEN
485 DEALLOCATE (
topology%conn_info%phi_type)
487 IF (
ASSOCIATED(
topology%conn_info%impr_a))
THEN
488 DEALLOCATE (
topology%conn_info%impr_a)
490 IF (
ASSOCIATED(
topology%conn_info%impr_b))
THEN
491 DEALLOCATE (
topology%conn_info%impr_b)
493 IF (
ASSOCIATED(
topology%conn_info%impr_c))
THEN
494 DEALLOCATE (
topology%conn_info%impr_c)
496 IF (
ASSOCIATED(
topology%conn_info%impr_d))
THEN
497 DEALLOCATE (
topology%conn_info%impr_d)
499 IF (
ASSOCIATED(
topology%conn_info%impr_type))
THEN
500 DEALLOCATE (
topology%conn_info%impr_type)
502 IF (
ASSOCIATED(
topology%conn_info%onfo_a))
THEN
503 DEALLOCATE (
topology%conn_info%onfo_a)
505 IF (
ASSOCIATED(
topology%conn_info%onfo_b))
THEN
506 DEALLOCATE (
topology%conn_info%onfo_b)
508 IF (
ASSOCIATED(
topology%conn_info%c_bond_a))
THEN
509 DEALLOCATE (
topology%conn_info%c_bond_a)
511 IF (
ASSOCIATED(
topology%conn_info%c_bond_b))
THEN
512 DEALLOCATE (
topology%conn_info%c_bond_b)
514 IF (
ASSOCIATED(
topology%conn_info%c_bond_type))
THEN
515 DEALLOCATE (
topology%conn_info%c_bond_type)
520 IF (
ASSOCIATED(
topology%cons_info)) &
521 CALL deallocate_constraint(
topology%cons_info)
528 IF (
ASSOCIATED(
topology%atom_info))
THEN
531 IF (
ASSOCIATED(
topology%conn_info))
THEN
534 IF (
ASSOCIATED(
topology%cons_info))
THEN
546 SUBROUTINE deallocate_constraint(constraint_info)
553 IF (
ASSOCIATED(constraint_info%fixed_atoms))
THEN
554 DEALLOCATE (constraint_info%fixed_atoms)
556 IF (
ASSOCIATED(constraint_info%fixed_type))
THEN
557 DEALLOCATE (constraint_info%fixed_type)
559 IF (
ASSOCIATED(constraint_info%fixed_molnames))
THEN
560 DEALLOCATE (constraint_info%fixed_molnames)
562 IF (
ASSOCIATED(constraint_info%fixed_mol_type))
THEN
563 DEALLOCATE (constraint_info%fixed_mol_type)
565 IF (
ASSOCIATED(constraint_info%fixed_restraint))
THEN
566 DEALLOCATE (constraint_info%fixed_restraint)
568 IF (
ASSOCIATED(constraint_info%fixed_k0))
THEN
569 DEALLOCATE (constraint_info%fixed_k0)
571 IF (
ASSOCIATED(constraint_info%fixed_mol_restraint))
THEN
572 DEALLOCATE (constraint_info%fixed_mol_restraint)
574 IF (
ASSOCIATED(constraint_info%fixed_mol_k0))
THEN
575 DEALLOCATE (constraint_info%fixed_mol_k0)
577 IF (
ASSOCIATED(constraint_info%fixed_exclude_qm))
THEN
578 DEALLOCATE (constraint_info%fixed_exclude_qm)
580 IF (
ASSOCIATED(constraint_info%fixed_exclude_mm))
THEN
581 DEALLOCATE (constraint_info%fixed_exclude_mm)
584 IF (
ASSOCIATED(constraint_info%colvar_set))
THEN
585 DO i = 1,
SIZE(constraint_info%colvar_set)
586 IF (
ASSOCIATED(constraint_info%colvar_set(i)%colvar))
THEN
588 NULLIFY (constraint_info%colvar_set(i)%colvar)
591 DEALLOCATE (constraint_info%colvar_set)
593 IF (
ASSOCIATED(constraint_info%const_colv_mol))
THEN
594 DEALLOCATE (constraint_info%const_colv_mol)
596 IF (
ASSOCIATED(constraint_info%const_colv_molname))
THEN
597 DEALLOCATE (constraint_info%const_colv_molname)
599 IF (
ASSOCIATED(constraint_info%const_colv_target))
THEN
600 DEALLOCATE (constraint_info%const_colv_target)
602 IF (
ASSOCIATED(constraint_info%const_colv_target_growth))
THEN
603 DEALLOCATE (constraint_info%const_colv_target_growth)
605 IF (
ASSOCIATED(constraint_info%colv_intermolecular))
THEN
606 DEALLOCATE (constraint_info%colv_intermolecular)
608 IF (
ASSOCIATED(constraint_info%colv_restraint))
THEN
609 DEALLOCATE (constraint_info%colv_restraint)
611 IF (
ASSOCIATED(constraint_info%colv_k0))
THEN
612 DEALLOCATE (constraint_info%colv_k0)
614 IF (
ASSOCIATED(constraint_info%colv_exclude_qm))
THEN
615 DEALLOCATE (constraint_info%colv_exclude_qm)
617 IF (
ASSOCIATED(constraint_info%colv_exclude_mm))
THEN
618 DEALLOCATE (constraint_info%colv_exclude_mm)
621 IF (
ASSOCIATED(constraint_info%const_g33_mol))
THEN
622 DEALLOCATE (constraint_info%const_g33_mol)
624 IF (
ASSOCIATED(constraint_info%const_g33_molname))
THEN
625 DEALLOCATE (constraint_info%const_g33_molname)
627 IF (
ASSOCIATED(constraint_info%const_g33_a))
THEN
628 DEALLOCATE (constraint_info%const_g33_a)
630 IF (
ASSOCIATED(constraint_info%const_g33_b))
THEN
631 DEALLOCATE (constraint_info%const_g33_b)
633 IF (
ASSOCIATED(constraint_info%const_g33_c))
THEN
634 DEALLOCATE (constraint_info%const_g33_c)
636 IF (
ASSOCIATED(constraint_info%const_g33_dab))
THEN
637 DEALLOCATE (constraint_info%const_g33_dab)
639 IF (
ASSOCIATED(constraint_info%const_g33_dac))
THEN
640 DEALLOCATE (constraint_info%const_g33_dac)
642 IF (
ASSOCIATED(constraint_info%const_g33_dbc))
THEN
643 DEALLOCATE (constraint_info%const_g33_dbc)
645 IF (
ASSOCIATED(constraint_info%g33_intermolecular))
THEN
646 DEALLOCATE (constraint_info%g33_intermolecular)
648 IF (
ASSOCIATED(constraint_info%g33_restraint))
THEN
649 DEALLOCATE (constraint_info%g33_restraint)
651 IF (
ASSOCIATED(constraint_info%g33_k0))
THEN
652 DEALLOCATE (constraint_info%g33_k0)
654 IF (
ASSOCIATED(constraint_info%g33_exclude_qm))
THEN
655 DEALLOCATE (constraint_info%g33_exclude_qm)
657 IF (
ASSOCIATED(constraint_info%g33_exclude_mm))
THEN
658 DEALLOCATE (constraint_info%g33_exclude_mm)
661 IF (
ASSOCIATED(constraint_info%const_g46_mol))
THEN
662 DEALLOCATE (constraint_info%const_g46_mol)
664 IF (
ASSOCIATED(constraint_info%const_g46_molname))
THEN
665 DEALLOCATE (constraint_info%const_g46_molname)
667 IF (
ASSOCIATED(constraint_info%const_g46_a))
THEN
668 DEALLOCATE (constraint_info%const_g46_a)
670 IF (
ASSOCIATED(constraint_info%const_g46_b))
THEN
671 DEALLOCATE (constraint_info%const_g46_b)
673 IF (
ASSOCIATED(constraint_info%const_g46_c))
THEN
674 DEALLOCATE (constraint_info%const_g46_c)
676 IF (
ASSOCIATED(constraint_info%const_g46_d))
THEN
677 DEALLOCATE (constraint_info%const_g46_d)
679 IF (
ASSOCIATED(constraint_info%const_g46_dab))
THEN
680 DEALLOCATE (constraint_info%const_g46_dab)
682 IF (
ASSOCIATED(constraint_info%const_g46_dac))
THEN
683 DEALLOCATE (constraint_info%const_g46_dac)
685 IF (
ASSOCIATED(constraint_info%const_g46_dbc))
THEN
686 DEALLOCATE (constraint_info%const_g46_dbc)
688 IF (
ASSOCIATED(constraint_info%const_g46_dad))
THEN
689 DEALLOCATE (constraint_info%const_g46_dad)
691 IF (
ASSOCIATED(constraint_info%const_g46_dbd))
THEN
692 DEALLOCATE (constraint_info%const_g46_dbd)
694 IF (
ASSOCIATED(constraint_info%const_g46_dcd))
THEN
695 DEALLOCATE (constraint_info%const_g46_dcd)
697 IF (
ASSOCIATED(constraint_info%g46_intermolecular))
THEN
698 DEALLOCATE (constraint_info%g46_intermolecular)
700 IF (
ASSOCIATED(constraint_info%g46_restraint))
THEN
701 DEALLOCATE (constraint_info%g46_restraint)
703 IF (
ASSOCIATED(constraint_info%g46_k0))
THEN
704 DEALLOCATE (constraint_info%g46_k0)
706 IF (
ASSOCIATED(constraint_info%g46_exclude_qm))
THEN
707 DEALLOCATE (constraint_info%g46_exclude_qm)
709 IF (
ASSOCIATED(constraint_info%g46_exclude_mm))
THEN
710 DEALLOCATE (constraint_info%g46_exclude_mm)
713 IF (
ASSOCIATED(constraint_info%const_vsite_mol))
THEN
714 DEALLOCATE (constraint_info%const_vsite_mol)
716 IF (
ASSOCIATED(constraint_info%const_vsite_molname))
THEN
717 DEALLOCATE (constraint_info%const_vsite_molname)
719 IF (
ASSOCIATED(constraint_info%const_vsite_a))
THEN
720 DEALLOCATE (constraint_info%const_vsite_a)
722 IF (
ASSOCIATED(constraint_info%const_vsite_b))
THEN
723 DEALLOCATE (constraint_info%const_vsite_b)
725 IF (
ASSOCIATED(constraint_info%const_vsite_c))
THEN
726 DEALLOCATE (constraint_info%const_vsite_c)
728 IF (
ASSOCIATED(constraint_info%const_vsite_d))
THEN
729 DEALLOCATE (constraint_info%const_vsite_d)
731 IF (
ASSOCIATED(constraint_info%const_vsite_wbc))
THEN
732 DEALLOCATE (constraint_info%const_vsite_wbc)
734 IF (
ASSOCIATED(constraint_info%const_vsite_wdc))
THEN
735 DEALLOCATE (constraint_info%const_vsite_wdc)
737 IF (
ASSOCIATED(constraint_info%vsite_intermolecular))
THEN
738 DEALLOCATE (constraint_info%vsite_intermolecular)
740 IF (
ASSOCIATED(constraint_info%vsite_restraint))
THEN
741 DEALLOCATE (constraint_info%vsite_restraint)
743 IF (
ASSOCIATED(constraint_info%vsite_k0))
THEN
744 DEALLOCATE (constraint_info%vsite_k0)
746 IF (
ASSOCIATED(constraint_info%vsite_exclude_qm))
THEN
747 DEALLOCATE (constraint_info%vsite_exclude_qm)
749 IF (
ASSOCIATED(constraint_info%vsite_exclude_mm))
THEN
750 DEALLOCATE (constraint_info%vsite_exclude_mm)
752 END SUBROUTINE deallocate_constraint
767 IF (
ASSOCIATED(atom_info%id_molname))
THEN
768 DEALLOCATE (atom_info%id_molname)
771 IF (
ASSOCIATED(atom_info%resid))
THEN
772 DEALLOCATE (atom_info%resid)
775 IF (
ASSOCIATED(atom_info%id_resname))
THEN
776 DEALLOCATE (atom_info%id_resname)
779 IF (
ASSOCIATED(atom_info%id_atmname))
THEN
780 DEALLOCATE (atom_info%id_atmname)
783 IF (
ASSOCIATED(atom_info%atm_charge))
THEN
784 DEALLOCATE (atom_info%atm_charge)
787 IF (
ASSOCIATED(atom_info%atm_mass))
THEN
788 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.