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()
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, natom_muc = -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'
245 topology%molname_generated = .false.
252 NULLIFY (
topology%atom_info%id_molname)
253 NULLIFY (
topology%atom_info%id_resname)
255 NULLIFY (
topology%atom_info%id_atmname)
256 NULLIFY (
topology%atom_info%id_atom_names)
258 NULLIFY (
topology%atom_info%map_mol_typ)
259 NULLIFY (
topology%atom_info%map_mol_num)
260 NULLIFY (
topology%atom_info%map_mol_res)
261 NULLIFY (
topology%atom_info%atm_charge)
262 NULLIFY (
topology%atom_info%atm_mass)
265 NULLIFY (
topology%atom_info%id_element)
271 NULLIFY (
topology%conn_info%bond_type)
275 NULLIFY (
topology%conn_info%theta_a)
276 NULLIFY (
topology%conn_info%theta_b)
277 NULLIFY (
topology%conn_info%theta_c)
278 NULLIFY (
topology%conn_info%theta_type)
283 NULLIFY (
topology%conn_info%phi_type)
288 NULLIFY (
topology%conn_info%impr_type)
291 NULLIFY (
topology%conn_info%c_bond_a)
292 NULLIFY (
topology%conn_info%c_bond_b)
293 NULLIFY (
topology%conn_info%c_bond_type)
297 CALL init_constraint(
topology%cons_info)
306 SUBROUTINE init_constraint(constraint_info)
311 constraint_info%hbonds_restraint = .false.
313 constraint_info%nfixed_atoms = 0
316 NULLIFY (constraint_info%fixed_atoms)
317 NULLIFY (constraint_info%fixed_type)
318 NULLIFY (constraint_info%fixed_mol_type)
319 NULLIFY (constraint_info%fixed_molnames)
320 NULLIFY (constraint_info%fixed_restraint)
321 NULLIFY (constraint_info%fixed_k0)
322 NULLIFY (constraint_info%fixed_mol_restraint)
323 NULLIFY (constraint_info%fixed_mol_k0)
324 NULLIFY (constraint_info%fixed_exclude_qm, constraint_info%fixed_exclude_mm)
326 constraint_info%nconst_colv = 0
327 NULLIFY (constraint_info%colvar_set)
328 NULLIFY (constraint_info%const_colv_mol)
329 NULLIFY (constraint_info%const_colv_molname)
330 NULLIFY (constraint_info%const_colv_target)
331 NULLIFY (constraint_info%const_colv_target_growth)
332 NULLIFY (constraint_info%colv_intermolecular)
333 NULLIFY (constraint_info%colv_restraint)
334 NULLIFY (constraint_info%colv_k0)
335 NULLIFY (constraint_info%colv_exclude_qm, constraint_info%colv_exclude_mm)
337 constraint_info%nconst_g33 = 0
338 NULLIFY (constraint_info%const_g33_mol)
339 NULLIFY (constraint_info%const_g33_molname)
340 NULLIFY (constraint_info%const_g33_a)
341 NULLIFY (constraint_info%const_g33_b)
342 NULLIFY (constraint_info%const_g33_c)
343 NULLIFY (constraint_info%const_g33_dab)
344 NULLIFY (constraint_info%const_g33_dac)
345 NULLIFY (constraint_info%const_g33_dbc)
346 NULLIFY (constraint_info%g33_intermolecular)
347 NULLIFY (constraint_info%g33_restraint)
348 NULLIFY (constraint_info%g33_k0)
349 NULLIFY (constraint_info%g33_exclude_qm, constraint_info%g33_exclude_mm)
351 constraint_info%nconst_g46 = 0
352 NULLIFY (constraint_info%const_g46_mol)
353 NULLIFY (constraint_info%const_g46_molname)
354 NULLIFY (constraint_info%const_g46_a)
355 NULLIFY (constraint_info%const_g46_b)
356 NULLIFY (constraint_info%const_g46_c)
357 NULLIFY (constraint_info%const_g46_d)
358 NULLIFY (constraint_info%const_g46_dab)
359 NULLIFY (constraint_info%const_g46_dac)
360 NULLIFY (constraint_info%const_g46_dbc)
361 NULLIFY (constraint_info%const_g46_dad)
362 NULLIFY (constraint_info%const_g46_dbd)
363 NULLIFY (constraint_info%const_g46_dcd)
364 NULLIFY (constraint_info%g46_intermolecular)
365 NULLIFY (constraint_info%g46_restraint)
366 NULLIFY (constraint_info%g46_k0)
367 NULLIFY (constraint_info%g46_exclude_qm, constraint_info%g46_exclude_mm)
369 constraint_info%nconst_vsite = 0
370 NULLIFY (constraint_info%const_vsite_mol)
371 NULLIFY (constraint_info%const_vsite_molname)
372 NULLIFY (constraint_info%const_vsite_a)
373 NULLIFY (constraint_info%const_vsite_b)
374 NULLIFY (constraint_info%const_vsite_c)
375 NULLIFY (constraint_info%const_vsite_d)
376 NULLIFY (constraint_info%const_vsite_wbc)
377 NULLIFY (constraint_info%const_vsite_wdc)
378 NULLIFY (constraint_info%vsite_intermolecular)
379 NULLIFY (constraint_info%vsite_restraint)
380 NULLIFY (constraint_info%vsite_k0)
381 NULLIFY (constraint_info%vsite_exclude_qm, constraint_info%vsite_exclude_mm)
383 END SUBROUTINE init_constraint
398 IF (
ASSOCIATED(
topology%atom_info%id_molname))
THEN
399 DEALLOCATE (
topology%atom_info%id_molname)
401 IF (
ASSOCIATED(
topology%atom_info%id_resname))
THEN
402 DEALLOCATE (
topology%atom_info%id_resname)
404 IF (
ASSOCIATED(
topology%atom_info%resid))
THEN
405 DEALLOCATE (
topology%atom_info%resid)
407 IF (
ASSOCIATED(
topology%atom_info%id_atmname))
THEN
408 DEALLOCATE (
topology%atom_info%id_atmname)
410 IF (
ASSOCIATED(
topology%atom_info%id_atom_names))
THEN
411 DEALLOCATE (
topology%atom_info%id_atom_names)
413 IF (
ASSOCIATED(
topology%atom_info%r))
THEN
416 IF (
ASSOCIATED(
topology%atom_info%map_mol_typ))
THEN
417 DEALLOCATE (
topology%atom_info%map_mol_typ)
419 IF (
ASSOCIATED(
topology%atom_info%map_mol_num))
THEN
420 DEALLOCATE (
topology%atom_info%map_mol_num)
422 IF (
ASSOCIATED(
topology%atom_info%map_mol_res))
THEN
423 DEALLOCATE (
topology%atom_info%map_mol_res)
425 IF (
ASSOCIATED(
topology%atom_info%atm_charge))
THEN
426 DEALLOCATE (
topology%atom_info%atm_charge)
428 IF (
ASSOCIATED(
topology%atom_info%atm_mass))
THEN
429 DEALLOCATE (
topology%atom_info%atm_mass)
431 IF (
ASSOCIATED(
topology%atom_info%occup))
THEN
432 DEALLOCATE (
topology%atom_info%occup)
434 IF (
ASSOCIATED(
topology%atom_info%beta))
THEN
435 DEALLOCATE (
topology%atom_info%beta)
437 IF (
ASSOCIATED(
topology%atom_info%id_element))
THEN
438 DEALLOCATE (
topology%atom_info%id_element)
443 IF (
ASSOCIATED(
topology%conn_info%bond_a))
THEN
444 DEALLOCATE (
topology%conn_info%bond_a)
446 IF (
ASSOCIATED(
topology%conn_info%bond_b))
THEN
447 DEALLOCATE (
topology%conn_info%bond_b)
449 IF (
ASSOCIATED(
topology%conn_info%bond_type))
THEN
450 DEALLOCATE (
topology%conn_info%bond_type)
452 IF (
ASSOCIATED(
topology%conn_info%ub_a))
THEN
453 DEALLOCATE (
topology%conn_info%ub_a)
455 IF (
ASSOCIATED(
topology%conn_info%ub_b))
THEN
456 DEALLOCATE (
topology%conn_info%ub_b)
458 IF (
ASSOCIATED(
topology%conn_info%ub_c))
THEN
459 DEALLOCATE (
topology%conn_info%ub_c)
461 IF (
ASSOCIATED(
topology%conn_info%theta_a))
THEN
462 DEALLOCATE (
topology%conn_info%theta_a)
464 IF (
ASSOCIATED(
topology%conn_info%theta_b))
THEN
465 DEALLOCATE (
topology%conn_info%theta_b)
467 IF (
ASSOCIATED(
topology%conn_info%theta_c))
THEN
468 DEALLOCATE (
topology%conn_info%theta_c)
470 IF (
ASSOCIATED(
topology%conn_info%theta_type))
THEN
471 DEALLOCATE (
topology%conn_info%theta_type)
473 IF (
ASSOCIATED(
topology%conn_info%phi_a))
THEN
474 DEALLOCATE (
topology%conn_info%phi_a)
476 IF (
ASSOCIATED(
topology%conn_info%phi_b))
THEN
477 DEALLOCATE (
topology%conn_info%phi_b)
479 IF (
ASSOCIATED(
topology%conn_info%phi_c))
THEN
480 DEALLOCATE (
topology%conn_info%phi_c)
482 IF (
ASSOCIATED(
topology%conn_info%phi_d))
THEN
483 DEALLOCATE (
topology%conn_info%phi_d)
485 IF (
ASSOCIATED(
topology%conn_info%phi_type))
THEN
486 DEALLOCATE (
topology%conn_info%phi_type)
488 IF (
ASSOCIATED(
topology%conn_info%impr_a))
THEN
489 DEALLOCATE (
topology%conn_info%impr_a)
491 IF (
ASSOCIATED(
topology%conn_info%impr_b))
THEN
492 DEALLOCATE (
topology%conn_info%impr_b)
494 IF (
ASSOCIATED(
topology%conn_info%impr_c))
THEN
495 DEALLOCATE (
topology%conn_info%impr_c)
497 IF (
ASSOCIATED(
topology%conn_info%impr_d))
THEN
498 DEALLOCATE (
topology%conn_info%impr_d)
500 IF (
ASSOCIATED(
topology%conn_info%impr_type))
THEN
501 DEALLOCATE (
topology%conn_info%impr_type)
503 IF (
ASSOCIATED(
topology%conn_info%onfo_a))
THEN
504 DEALLOCATE (
topology%conn_info%onfo_a)
506 IF (
ASSOCIATED(
topology%conn_info%onfo_b))
THEN
507 DEALLOCATE (
topology%conn_info%onfo_b)
509 IF (
ASSOCIATED(
topology%conn_info%c_bond_a))
THEN
510 DEALLOCATE (
topology%conn_info%c_bond_a)
512 IF (
ASSOCIATED(
topology%conn_info%c_bond_b))
THEN
513 DEALLOCATE (
topology%conn_info%c_bond_b)
515 IF (
ASSOCIATED(
topology%conn_info%c_bond_type))
THEN
516 DEALLOCATE (
topology%conn_info%c_bond_type)
521 IF (
ASSOCIATED(
topology%cons_info)) &
522 CALL deallocate_constraint(
topology%cons_info)
529 IF (
ASSOCIATED(
topology%atom_info))
THEN
532 IF (
ASSOCIATED(
topology%conn_info))
THEN
535 IF (
ASSOCIATED(
topology%cons_info))
THEN
547 SUBROUTINE deallocate_constraint(constraint_info)
554 IF (
ASSOCIATED(constraint_info%fixed_atoms))
THEN
555 DEALLOCATE (constraint_info%fixed_atoms)
557 IF (
ASSOCIATED(constraint_info%fixed_type))
THEN
558 DEALLOCATE (constraint_info%fixed_type)
560 IF (
ASSOCIATED(constraint_info%fixed_molnames))
THEN
561 DEALLOCATE (constraint_info%fixed_molnames)
563 IF (
ASSOCIATED(constraint_info%fixed_mol_type))
THEN
564 DEALLOCATE (constraint_info%fixed_mol_type)
566 IF (
ASSOCIATED(constraint_info%fixed_restraint))
THEN
567 DEALLOCATE (constraint_info%fixed_restraint)
569 IF (
ASSOCIATED(constraint_info%fixed_k0))
THEN
570 DEALLOCATE (constraint_info%fixed_k0)
572 IF (
ASSOCIATED(constraint_info%fixed_mol_restraint))
THEN
573 DEALLOCATE (constraint_info%fixed_mol_restraint)
575 IF (
ASSOCIATED(constraint_info%fixed_mol_k0))
THEN
576 DEALLOCATE (constraint_info%fixed_mol_k0)
578 IF (
ASSOCIATED(constraint_info%fixed_exclude_qm))
THEN
579 DEALLOCATE (constraint_info%fixed_exclude_qm)
581 IF (
ASSOCIATED(constraint_info%fixed_exclude_mm))
THEN
582 DEALLOCATE (constraint_info%fixed_exclude_mm)
585 IF (
ASSOCIATED(constraint_info%colvar_set))
THEN
586 DO i = 1,
SIZE(constraint_info%colvar_set)
587 IF (
ASSOCIATED(constraint_info%colvar_set(i)%colvar))
THEN
589 NULLIFY (constraint_info%colvar_set(i)%colvar)
592 DEALLOCATE (constraint_info%colvar_set)
594 IF (
ASSOCIATED(constraint_info%const_colv_mol))
THEN
595 DEALLOCATE (constraint_info%const_colv_mol)
597 IF (
ASSOCIATED(constraint_info%const_colv_molname))
THEN
598 DEALLOCATE (constraint_info%const_colv_molname)
600 IF (
ASSOCIATED(constraint_info%const_colv_target))
THEN
601 DEALLOCATE (constraint_info%const_colv_target)
603 IF (
ASSOCIATED(constraint_info%const_colv_target_growth))
THEN
604 DEALLOCATE (constraint_info%const_colv_target_growth)
606 IF (
ASSOCIATED(constraint_info%colv_intermolecular))
THEN
607 DEALLOCATE (constraint_info%colv_intermolecular)
609 IF (
ASSOCIATED(constraint_info%colv_restraint))
THEN
610 DEALLOCATE (constraint_info%colv_restraint)
612 IF (
ASSOCIATED(constraint_info%colv_k0))
THEN
613 DEALLOCATE (constraint_info%colv_k0)
615 IF (
ASSOCIATED(constraint_info%colv_exclude_qm))
THEN
616 DEALLOCATE (constraint_info%colv_exclude_qm)
618 IF (
ASSOCIATED(constraint_info%colv_exclude_mm))
THEN
619 DEALLOCATE (constraint_info%colv_exclude_mm)
622 IF (
ASSOCIATED(constraint_info%const_g33_mol))
THEN
623 DEALLOCATE (constraint_info%const_g33_mol)
625 IF (
ASSOCIATED(constraint_info%const_g33_molname))
THEN
626 DEALLOCATE (constraint_info%const_g33_molname)
628 IF (
ASSOCIATED(constraint_info%const_g33_a))
THEN
629 DEALLOCATE (constraint_info%const_g33_a)
631 IF (
ASSOCIATED(constraint_info%const_g33_b))
THEN
632 DEALLOCATE (constraint_info%const_g33_b)
634 IF (
ASSOCIATED(constraint_info%const_g33_c))
THEN
635 DEALLOCATE (constraint_info%const_g33_c)
637 IF (
ASSOCIATED(constraint_info%const_g33_dab))
THEN
638 DEALLOCATE (constraint_info%const_g33_dab)
640 IF (
ASSOCIATED(constraint_info%const_g33_dac))
THEN
641 DEALLOCATE (constraint_info%const_g33_dac)
643 IF (
ASSOCIATED(constraint_info%const_g33_dbc))
THEN
644 DEALLOCATE (constraint_info%const_g33_dbc)
646 IF (
ASSOCIATED(constraint_info%g33_intermolecular))
THEN
647 DEALLOCATE (constraint_info%g33_intermolecular)
649 IF (
ASSOCIATED(constraint_info%g33_restraint))
THEN
650 DEALLOCATE (constraint_info%g33_restraint)
652 IF (
ASSOCIATED(constraint_info%g33_k0))
THEN
653 DEALLOCATE (constraint_info%g33_k0)
655 IF (
ASSOCIATED(constraint_info%g33_exclude_qm))
THEN
656 DEALLOCATE (constraint_info%g33_exclude_qm)
658 IF (
ASSOCIATED(constraint_info%g33_exclude_mm))
THEN
659 DEALLOCATE (constraint_info%g33_exclude_mm)
662 IF (
ASSOCIATED(constraint_info%const_g46_mol))
THEN
663 DEALLOCATE (constraint_info%const_g46_mol)
665 IF (
ASSOCIATED(constraint_info%const_g46_molname))
THEN
666 DEALLOCATE (constraint_info%const_g46_molname)
668 IF (
ASSOCIATED(constraint_info%const_g46_a))
THEN
669 DEALLOCATE (constraint_info%const_g46_a)
671 IF (
ASSOCIATED(constraint_info%const_g46_b))
THEN
672 DEALLOCATE (constraint_info%const_g46_b)
674 IF (
ASSOCIATED(constraint_info%const_g46_c))
THEN
675 DEALLOCATE (constraint_info%const_g46_c)
677 IF (
ASSOCIATED(constraint_info%const_g46_d))
THEN
678 DEALLOCATE (constraint_info%const_g46_d)
680 IF (
ASSOCIATED(constraint_info%const_g46_dab))
THEN
681 DEALLOCATE (constraint_info%const_g46_dab)
683 IF (
ASSOCIATED(constraint_info%const_g46_dac))
THEN
684 DEALLOCATE (constraint_info%const_g46_dac)
686 IF (
ASSOCIATED(constraint_info%const_g46_dbc))
THEN
687 DEALLOCATE (constraint_info%const_g46_dbc)
689 IF (
ASSOCIATED(constraint_info%const_g46_dad))
THEN
690 DEALLOCATE (constraint_info%const_g46_dad)
692 IF (
ASSOCIATED(constraint_info%const_g46_dbd))
THEN
693 DEALLOCATE (constraint_info%const_g46_dbd)
695 IF (
ASSOCIATED(constraint_info%const_g46_dcd))
THEN
696 DEALLOCATE (constraint_info%const_g46_dcd)
698 IF (
ASSOCIATED(constraint_info%g46_intermolecular))
THEN
699 DEALLOCATE (constraint_info%g46_intermolecular)
701 IF (
ASSOCIATED(constraint_info%g46_restraint))
THEN
702 DEALLOCATE (constraint_info%g46_restraint)
704 IF (
ASSOCIATED(constraint_info%g46_k0))
THEN
705 DEALLOCATE (constraint_info%g46_k0)
707 IF (
ASSOCIATED(constraint_info%g46_exclude_qm))
THEN
708 DEALLOCATE (constraint_info%g46_exclude_qm)
710 IF (
ASSOCIATED(constraint_info%g46_exclude_mm))
THEN
711 DEALLOCATE (constraint_info%g46_exclude_mm)
714 IF (
ASSOCIATED(constraint_info%const_vsite_mol))
THEN
715 DEALLOCATE (constraint_info%const_vsite_mol)
717 IF (
ASSOCIATED(constraint_info%const_vsite_molname))
THEN
718 DEALLOCATE (constraint_info%const_vsite_molname)
720 IF (
ASSOCIATED(constraint_info%const_vsite_a))
THEN
721 DEALLOCATE (constraint_info%const_vsite_a)
723 IF (
ASSOCIATED(constraint_info%const_vsite_b))
THEN
724 DEALLOCATE (constraint_info%const_vsite_b)
726 IF (
ASSOCIATED(constraint_info%const_vsite_c))
THEN
727 DEALLOCATE (constraint_info%const_vsite_c)
729 IF (
ASSOCIATED(constraint_info%const_vsite_d))
THEN
730 DEALLOCATE (constraint_info%const_vsite_d)
732 IF (
ASSOCIATED(constraint_info%const_vsite_wbc))
THEN
733 DEALLOCATE (constraint_info%const_vsite_wbc)
735 IF (
ASSOCIATED(constraint_info%const_vsite_wdc))
THEN
736 DEALLOCATE (constraint_info%const_vsite_wdc)
738 IF (
ASSOCIATED(constraint_info%vsite_intermolecular))
THEN
739 DEALLOCATE (constraint_info%vsite_intermolecular)
741 IF (
ASSOCIATED(constraint_info%vsite_restraint))
THEN
742 DEALLOCATE (constraint_info%vsite_restraint)
744 IF (
ASSOCIATED(constraint_info%vsite_k0))
THEN
745 DEALLOCATE (constraint_info%vsite_k0)
747 IF (
ASSOCIATED(constraint_info%vsite_exclude_qm))
THEN
748 DEALLOCATE (constraint_info%vsite_exclude_qm)
750 IF (
ASSOCIATED(constraint_info%vsite_exclude_mm))
THEN
751 DEALLOCATE (constraint_info%vsite_exclude_mm)
753 END SUBROUTINE deallocate_constraint
768 IF (
ASSOCIATED(atom_info%id_molname))
THEN
769 DEALLOCATE (atom_info%id_molname)
772 IF (
ASSOCIATED(atom_info%resid))
THEN
773 DEALLOCATE (atom_info%resid)
776 IF (
ASSOCIATED(atom_info%id_resname))
THEN
777 DEALLOCATE (atom_info%id_resname)
780 IF (
ASSOCIATED(atom_info%id_atmname))
THEN
781 DEALLOCATE (atom_info%id_atmname)
784 IF (
ASSOCIATED(atom_info%atm_charge))
THEN
785 DEALLOCATE (atom_info%atm_charge)
788 IF (
ASSOCIATED(atom_info%atm_mass))
THEN
789 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.