27#include "./base/base_uses.f90"
33 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'force_field_types'
39 CHARACTER(LEN=default_string_length),
POINTER :: charge_atm(:) => null()
40 REAL(kind=
dp),
POINTER :: charge(:) => null()
41 CHARACTER(LEN=default_string_length),
POINTER :: apol_atm(:) => null()
42 REAL(kind=
dp),
POINTER :: apol(:) => null()
43 CHARACTER(LEN=default_string_length),
POINTER :: cpol_atm(:) => null()
44 REAL(kind=
dp),
POINTER :: cpol(:) => null()
45 INTEGER,
POINTER :: bond_kind(:) => null()
46 CHARACTER(LEN=default_string_length),
POINTER :: bond_a(:) => null()
47 CHARACTER(LEN=default_string_length),
POINTER :: bond_b(:) => null()
48 REAL(kind=
dp),
POINTER :: bond_k(:, :) => null()
49 REAL(kind=
dp),
POINTER :: bond_r0(:) => null()
50 REAL(kind=
dp),
POINTER :: bond_cs(:) => null()
51 INTEGER,
POINTER :: bend_kind(:) => null()
52 CHARACTER(LEN=default_string_length),
POINTER :: bend_a(:) => null()
53 CHARACTER(LEN=default_string_length),
POINTER :: bend_b(:) => null()
54 CHARACTER(LEN=default_string_length),
POINTER :: bend_c(:) => null()
55 REAL(kind=
dp),
POINTER :: bend_k(:) => null()
56 REAL(kind=
dp),
POINTER :: bend_theta0(:) => null()
57 REAL(kind=
dp),
POINTER :: bend_cb(:) => null()
58 REAL(kind=
dp),
POINTER,
DIMENSION(:) :: bend_r012 => null(), &
59 bend_r032 => null(), &
60 bend_kbs12 => null(), &
61 bend_kbs32 => null(), &
64 INTEGER,
POINTER :: ub_kind(:) => null()
65 CHARACTER(LEN=default_string_length),
POINTER :: ub_a(:) => null()
66 CHARACTER(LEN=default_string_length),
POINTER :: ub_b(:) => null()
67 CHARACTER(LEN=default_string_length),
POINTER :: ub_c(:) => null()
68 REAL(kind=
dp),
POINTER :: ub_k(:, :) => null()
69 REAL(kind=
dp),
POINTER :: ub_r0(:) => null()
70 INTEGER,
POINTER :: torsion_kind(:) => null()
71 CHARACTER(LEN=default_string_length),
POINTER :: torsion_a(:) => null()
72 CHARACTER(LEN=default_string_length),
POINTER :: torsion_b(:) => null()
73 CHARACTER(LEN=default_string_length),
POINTER :: torsion_c(:) => null()
74 CHARACTER(LEN=default_string_length),
POINTER :: torsion_d(:) => null()
75 REAL(kind=
dp),
POINTER :: torsion_k(:) => null()
76 INTEGER,
POINTER :: torsion_m(:) => null()
77 REAL(kind=
dp),
POINTER :: torsion_phi0(:) => null()
78 INTEGER,
POINTER :: impr_kind(:) => null()
79 CHARACTER(LEN=default_string_length),
POINTER :: impr_a(:) => null()
80 CHARACTER(LEN=default_string_length),
POINTER :: impr_b(:) => null()
81 CHARACTER(LEN=default_string_length),
POINTER :: impr_c(:) => null()
82 CHARACTER(LEN=default_string_length),
POINTER :: impr_d(:) => null()
83 REAL(kind=
dp),
POINTER :: impr_k(:) => null()
84 REAL(kind=
dp),
POINTER :: impr_phi0(:) => null()
85 INTEGER,
POINTER :: opbend_kind(:) => null()
86 CHARACTER(LEN=default_string_length),
POINTER :: opbend_a(:) => null()
87 CHARACTER(LEN=default_string_length),
POINTER :: opbend_b(:) => null()
88 CHARACTER(LEN=default_string_length),
POINTER :: opbend_c(:) => null()
89 CHARACTER(LEN=default_string_length),
POINTER :: opbend_d(:) => null()
90 REAL(kind=
dp),
POINTER :: opbend_k(:) => null()
91 REAL(kind=
dp),
POINTER :: opbend_phi0(:) => null()
100 CHARACTER(LEN=default_string_length),
POINTER :: bond_a(:) => null()
101 CHARACTER(LEN=default_string_length),
POINTER :: bond_b(:) => null()
102 REAL(kind=
dp),
POINTER :: bond_k(:) => null()
103 REAL(kind=
dp),
POINTER :: bond_r0(:) => null()
104 CHARACTER(LEN=default_string_length),
POINTER :: bend_a(:) => null()
105 CHARACTER(LEN=default_string_length),
POINTER :: bend_b(:) => null()
106 CHARACTER(LEN=default_string_length),
POINTER :: bend_c(:) => null()
107 REAL(kind=
dp),
POINTER :: bend_k(:) => null()
108 REAL(kind=
dp),
POINTER :: bend_theta0(:) => null()
109 CHARACTER(LEN=default_string_length),
POINTER :: ub_a(:) => null()
110 CHARACTER(LEN=default_string_length),
POINTER :: ub_b(:) => null()
111 CHARACTER(LEN=default_string_length),
POINTER :: ub_c(:) => null()
112 REAL(kind=
dp),
POINTER :: ub_k(:) => null()
113 REAL(kind=
dp),
POINTER :: ub_r0(:) => null()
114 CHARACTER(LEN=default_string_length),
POINTER :: torsion_a(:) => null()
115 CHARACTER(LEN=default_string_length),
POINTER :: torsion_b(:) => null()
116 CHARACTER(LEN=default_string_length),
POINTER :: torsion_c(:) => null()
117 CHARACTER(LEN=default_string_length),
POINTER :: torsion_d(:) => null()
118 REAL(kind=
dp),
POINTER :: torsion_k(:) => null()
119 INTEGER,
POINTER :: torsion_m(:) => null()
120 REAL(kind=
dp),
POINTER :: torsion_phi0(:) => null()
121 CHARACTER(LEN=default_string_length),
POINTER :: impr_a(:) => null()
122 CHARACTER(LEN=default_string_length),
POINTER :: impr_b(:) => null()
123 CHARACTER(LEN=default_string_length),
POINTER :: impr_c(:) => null()
124 CHARACTER(LEN=default_string_length),
POINTER :: impr_d(:) => null()
125 REAL(kind=
dp),
POINTER :: impr_k(:) => null()
126 REAL(kind=
dp),
POINTER :: impr_phi0(:) => null()
127 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a(:) => null()
128 REAL(kind=
dp),
POINTER :: nonbond_eps(:) => null()
129 REAL(kind=
dp),
POINTER :: nonbond_rmin2(:) => null()
130 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a_14(:) => null()
131 REAL(kind=
dp),
POINTER :: nonbond_eps_14(:) => null()
132 REAL(kind=
dp),
POINTER :: nonbond_rmin2_14(:) => null()
137 CHARACTER(LEN=default_string_length),
POINTER :: bond_a(:) => null()
138 CHARACTER(LEN=default_string_length),
POINTER :: bond_b(:) => null()
139 REAL(kind=
dp),
POINTER :: bond_k(:) => null()
140 REAL(kind=
dp),
POINTER :: bond_r0(:) => null()
141 CHARACTER(LEN=default_string_length),
POINTER :: bend_a(:) => null()
142 CHARACTER(LEN=default_string_length),
POINTER :: bend_b(:) => null()
143 CHARACTER(LEN=default_string_length),
POINTER :: bend_c(:) => null()
144 REAL(kind=
dp),
POINTER :: bend_k(:) => null()
145 REAL(kind=
dp),
POINTER :: bend_theta0(:) => null()
146 CHARACTER(LEN=default_string_length),
POINTER :: torsion_a(:) => null()
147 CHARACTER(LEN=default_string_length),
POINTER :: torsion_b(:) => null()
148 CHARACTER(LEN=default_string_length),
POINTER :: torsion_c(:) => null()
149 CHARACTER(LEN=default_string_length),
POINTER :: torsion_d(:) => null()
150 REAL(kind=
dp),
POINTER :: torsion_k(:) => null()
151 INTEGER,
POINTER :: torsion_m(:) => null()
152 REAL(kind=
dp),
POINTER :: torsion_phi0(:) => null()
153 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a(:) => null()
154 REAL(kind=
dp),
POINTER :: nonbond_eps(:) => null()
155 REAL(kind=
dp),
POINTER :: nonbond_rmin2(:) => null()
156 INTEGER,
POINTER :: raw_torsion_id(:, :) => null()
157 REAL(kind=
dp),
POINTER :: raw_torsion_k(:) => null()
158 REAL(kind=
dp),
POINTER :: raw_torsion_m(:) => null()
159 REAL(kind=
dp),
POINTER :: raw_torsion_phi0(:) => null()
164 INTEGER :: ff_gromos_type = -1
165 REAL(kind=
dp),
POINTER :: solvent_k(:) => null()
166 REAL(kind=
dp),
POINTER :: solvent_r0(:) => null()
167 REAL(kind=
dp),
POINTER :: bond_k(:) => null()
168 REAL(kind=
dp),
POINTER :: bond_r0(:) => null()
169 REAL(kind=
dp),
POINTER :: bend_k(:) => null()
170 REAL(kind=
dp),
POINTER :: bend_theta0(:) => null()
171 REAL(kind=
dp),
POINTER :: torsion_k(:) => null()
172 INTEGER,
POINTER :: torsion_m(:) => null()
173 REAL(kind=
dp),
POINTER :: torsion_phi0(:) => null()
174 REAL(kind=
dp),
POINTER :: impr_k(:) => null()
175 REAL(kind=
dp),
POINTER :: impr_phi0(:) => null()
176 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a(:) => null()
177 REAL(kind=
dp),
POINTER :: nonbond_c6(:, :) => null()
178 REAL(kind=
dp),
POINTER :: nonbond_c12(:, :) => null()
179 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a_14(:) => null()
180 REAL(kind=
dp),
POINTER :: nonbond_c6_14(:, :) => null()
181 REAL(kind=
dp),
POINTER :: nonbond_c12_14(:, :) => null()
186 LOGICAL :: shift_cutoff = .false., &
187 do_nonbonded = .false., &
188 do_electrostatics = .false., &
189 electrostatics = .false., &
190 multiple_potential = .false., &
191 ignore_missing_critical = .false.
192 INTEGER :: ff_type = -1
193 REAL(kind=
dp) :: rcut_nb = 0.0_dp
194 REAL(kind=
dp) :: ei_scale14 = 0.0_dp
195 REAL(kind=
dp) :: vdw_scale14 = 0.0_dp
196 REAL(kind=
dp) :: eps_spline = 0.0_dp, &
197 max_energy = 0.0_dp, &
198 emax_spline = 0.0_dp, &
200 INTEGER :: npoints = -1
201 CHARACTER(LEN=default_path_length) :: ff_file_name =
""
237 NULLIFY (ff_type%inp_info, ff_type%chm_info, ff_type%amb_info, ff_type%gro_info)
238 ALLOCATE (ff_type%inp_info)
239 ALLOCATE (ff_type%chm_info)
240 ALLOCATE (ff_type%gro_info)
241 ALLOCATE (ff_type%amb_info)
251 CALL init_chm_info(ff_type%chm_info)
256 CALL init_gromos_info(ff_type%gro_info)
261 CALL init_amber_info(ff_type%amb_info)
270 SUBROUTINE init_gromos_info(gro_info)
273 NULLIFY (gro_info%solvent_k)
274 NULLIFY (gro_info%solvent_r0)
275 NULLIFY (gro_info%bond_k)
276 NULLIFY (gro_info%bond_r0)
277 NULLIFY (gro_info%bend_k)
278 NULLIFY (gro_info%bend_theta0)
279 NULLIFY (gro_info%torsion_k)
280 NULLIFY (gro_info%torsion_m)
281 NULLIFY (gro_info%torsion_phi0)
282 NULLIFY (gro_info%impr_k)
283 NULLIFY (gro_info%impr_phi0)
284 NULLIFY (gro_info%nonbond_a)
285 NULLIFY (gro_info%nonbond_c6)
286 NULLIFY (gro_info%nonbond_c12)
287 NULLIFY (gro_info%nonbond_a_14)
288 NULLIFY (gro_info%nonbond_c6_14)
289 NULLIFY (gro_info%nonbond_c12_14)
291 END SUBROUTINE init_gromos_info
300 SUBROUTINE init_chm_info(chm_info)
303 NULLIFY (chm_info%bond_a)
304 NULLIFY (chm_info%bond_b)
305 NULLIFY (chm_info%bond_k)
306 NULLIFY (chm_info%bond_r0)
307 NULLIFY (chm_info%bend_a)
308 NULLIFY (chm_info%bend_b)
309 NULLIFY (chm_info%bend_c)
310 NULLIFY (chm_info%bend_k)
311 NULLIFY (chm_info%bend_theta0)
312 NULLIFY (chm_info%ub_a)
313 NULLIFY (chm_info%ub_b)
314 NULLIFY (chm_info%ub_c)
315 NULLIFY (chm_info%ub_k)
316 NULLIFY (chm_info%ub_r0)
317 NULLIFY (chm_info%torsion_a)
318 NULLIFY (chm_info%torsion_b)
319 NULLIFY (chm_info%torsion_c)
320 NULLIFY (chm_info%torsion_d)
321 NULLIFY (chm_info%torsion_k)
322 NULLIFY (chm_info%torsion_m)
323 NULLIFY (chm_info%torsion_phi0)
324 NULLIFY (chm_info%impr_a)
325 NULLIFY (chm_info%impr_b)
326 NULLIFY (chm_info%impr_c)
327 NULLIFY (chm_info%impr_d)
328 NULLIFY (chm_info%impr_k)
329 NULLIFY (chm_info%impr_phi0)
330 NULLIFY (chm_info%nonbond_a)
331 NULLIFY (chm_info%nonbond_eps)
332 NULLIFY (chm_info%nonbond_rmin2)
333 NULLIFY (chm_info%nonbond_a_14)
334 NULLIFY (chm_info%nonbond_eps_14)
335 NULLIFY (chm_info%nonbond_rmin2_14)
337 END SUBROUTINE init_chm_info
346 SUBROUTINE init_amber_info(amb_info)
349 NULLIFY (amb_info%bond_a)
350 NULLIFY (amb_info%bond_b)
351 NULLIFY (amb_info%bond_k)
352 NULLIFY (amb_info%bond_r0)
353 NULLIFY (amb_info%bend_a)
354 NULLIFY (amb_info%bend_b)
355 NULLIFY (amb_info%bend_c)
356 NULLIFY (amb_info%bend_k)
357 NULLIFY (amb_info%bend_theta0)
358 NULLIFY (amb_info%torsion_a)
359 NULLIFY (amb_info%torsion_b)
360 NULLIFY (amb_info%torsion_c)
361 NULLIFY (amb_info%torsion_d)
362 NULLIFY (amb_info%torsion_k)
363 NULLIFY (amb_info%torsion_m)
364 NULLIFY (amb_info%torsion_phi0)
365 NULLIFY (amb_info%nonbond_a)
366 NULLIFY (amb_info%nonbond_eps)
367 NULLIFY (amb_info%nonbond_rmin2)
368 NULLIFY (amb_info%raw_torsion_id)
369 NULLIFY (amb_info%raw_torsion_k)
370 NULLIFY (amb_info%raw_torsion_m)
371 NULLIFY (amb_info%raw_torsion_phi0)
373 END SUBROUTINE init_amber_info
385 NULLIFY (inp_info%charge_atm)
386 NULLIFY (inp_info%charge)
387 NULLIFY (inp_info%apol_atm)
388 NULLIFY (inp_info%apol)
389 NULLIFY (inp_info%cpol_atm)
390 NULLIFY (inp_info%cpol)
391 NULLIFY (inp_info%bond_kind)
392 NULLIFY (inp_info%bond_a)
393 NULLIFY (inp_info%bond_b)
394 NULLIFY (inp_info%bond_k)
395 NULLIFY (inp_info%bond_r0)
396 NULLIFY (inp_info%bond_cs)
397 NULLIFY (inp_info%bend_kind)
398 NULLIFY (inp_info%bend_a)
399 NULLIFY (inp_info%bend_b)
400 NULLIFY (inp_info%bend_c)
401 NULLIFY (inp_info%bend_k)
402 NULLIFY (inp_info%bend_theta0)
403 NULLIFY (inp_info%bend_cb)
404 NULLIFY (inp_info%bend_r012)
405 NULLIFY (inp_info%bend_r032)
406 NULLIFY (inp_info%bend_kbs12)
407 NULLIFY (inp_info%bend_kbs32)
408 NULLIFY (inp_info%bend_kss)
409 NULLIFY (inp_info%bend_legendre)
410 NULLIFY (inp_info%ub_kind)
411 NULLIFY (inp_info%ub_a)
412 NULLIFY (inp_info%ub_b)
413 NULLIFY (inp_info%ub_c)
414 NULLIFY (inp_info%ub_k)
415 NULLIFY (inp_info%ub_r0)
416 NULLIFY (inp_info%torsion_kind)
417 NULLIFY (inp_info%torsion_a)
418 NULLIFY (inp_info%torsion_b)
419 NULLIFY (inp_info%torsion_c)
420 NULLIFY (inp_info%torsion_d)
421 NULLIFY (inp_info%torsion_k)
422 NULLIFY (inp_info%torsion_m)
423 NULLIFY (inp_info%torsion_phi0)
424 NULLIFY (inp_info%impr_kind)
425 NULLIFY (inp_info%impr_a)
426 NULLIFY (inp_info%impr_b)
427 NULLIFY (inp_info%impr_c)
428 NULLIFY (inp_info%impr_d)
429 NULLIFY (inp_info%impr_k)
430 NULLIFY (inp_info%impr_phi0)
431 NULLIFY (inp_info%opbend_kind)
432 NULLIFY (inp_info%opbend_a)
433 NULLIFY (inp_info%opbend_b)
434 NULLIFY (inp_info%opbend_c)
435 NULLIFY (inp_info%opbend_d)
436 NULLIFY (inp_info%opbend_k)
437 NULLIFY (inp_info%opbend_phi0)
438 NULLIFY (inp_info%nonbonded)
439 NULLIFY (inp_info%nonbonded14)
440 NULLIFY (inp_info%shell_list)
441 NULLIFY (inp_info%damping_list)
461 CALL deallocate_chm_info(ff_type%chm_info)
466 CALL deallocate_gromos_info(ff_type%gro_info)
471 CALL deallocate_amb_info(ff_type%amb_info)
476 IF (
ASSOCIATED(ff_type%inp_info))
THEN
477 DEALLOCATE (ff_type%inp_info)
479 IF (
ASSOCIATED(ff_type%chm_info))
THEN
480 DEALLOCATE (ff_type%chm_info)
482 IF (
ASSOCIATED(ff_type%gro_info))
THEN
483 DEALLOCATE (ff_type%gro_info)
485 IF (
ASSOCIATED(ff_type%amb_info))
THEN
486 DEALLOCATE (ff_type%amb_info)
496 SUBROUTINE deallocate_gromos_info(gro_info)
499 IF (
ASSOCIATED(gro_info%solvent_k))
THEN
500 DEALLOCATE (gro_info%solvent_k)
502 IF (
ASSOCIATED(gro_info%solvent_r0))
THEN
503 DEALLOCATE (gro_info%solvent_r0)
505 IF (
ASSOCIATED(gro_info%bond_k))
THEN
506 DEALLOCATE (gro_info%bond_k)
508 IF (
ASSOCIATED(gro_info%bond_r0))
THEN
509 DEALLOCATE (gro_info%bond_r0)
511 IF (
ASSOCIATED(gro_info%bend_k))
THEN
512 DEALLOCATE (gro_info%bend_k)
514 IF (
ASSOCIATED(gro_info%bend_theta0))
THEN
515 DEALLOCATE (gro_info%bend_theta0)
517 IF (
ASSOCIATED(gro_info%torsion_k))
THEN
518 DEALLOCATE (gro_info%torsion_k)
520 IF (
ASSOCIATED(gro_info%torsion_m))
THEN
521 DEALLOCATE (gro_info%torsion_m)
523 IF (
ASSOCIATED(gro_info%torsion_phi0))
THEN
524 DEALLOCATE (gro_info%torsion_phi0)
526 IF (
ASSOCIATED(gro_info%impr_k))
THEN
527 DEALLOCATE (gro_info%impr_k)
529 IF (
ASSOCIATED(gro_info%impr_phi0))
THEN
530 DEALLOCATE (gro_info%impr_phi0)
532 IF (
ASSOCIATED(gro_info%nonbond_a))
THEN
533 DEALLOCATE (gro_info%nonbond_a)
535 IF (
ASSOCIATED(gro_info%nonbond_c6))
THEN
536 DEALLOCATE (gro_info%nonbond_c6)
538 IF (
ASSOCIATED(gro_info%nonbond_c12))
THEN
539 DEALLOCATE (gro_info%nonbond_c12)
541 IF (
ASSOCIATED(gro_info%nonbond_a_14))
THEN
542 DEALLOCATE (gro_info%nonbond_a_14)
544 IF (
ASSOCIATED(gro_info%nonbond_c6_14))
THEN
545 DEALLOCATE (gro_info%nonbond_c6_14)
547 IF (
ASSOCIATED(gro_info%nonbond_c12_14))
THEN
548 DEALLOCATE (gro_info%nonbond_c12_14)
551 END SUBROUTINE deallocate_gromos_info
560 SUBROUTINE deallocate_chm_info(chm_info)
563 IF (
ASSOCIATED(chm_info%bond_a))
THEN
564 DEALLOCATE (chm_info%bond_a)
566 IF (
ASSOCIATED(chm_info%bond_b))
THEN
567 DEALLOCATE (chm_info%bond_b)
569 IF (
ASSOCIATED(chm_info%bond_k))
THEN
570 DEALLOCATE (chm_info%bond_k)
572 IF (
ASSOCIATED(chm_info%bond_r0))
THEN
573 DEALLOCATE (chm_info%bond_r0)
575 IF (
ASSOCIATED(chm_info%bend_a))
THEN
576 DEALLOCATE (chm_info%bend_a)
578 IF (
ASSOCIATED(chm_info%bend_b))
THEN
579 DEALLOCATE (chm_info%bend_b)
581 IF (
ASSOCIATED(chm_info%bend_c))
THEN
582 DEALLOCATE (chm_info%bend_c)
584 IF (
ASSOCIATED(chm_info%bend_k))
THEN
585 DEALLOCATE (chm_info%bend_k)
587 IF (
ASSOCIATED(chm_info%bend_theta0))
THEN
588 DEALLOCATE (chm_info%bend_theta0)
590 IF (
ASSOCIATED(chm_info%ub_a))
THEN
591 DEALLOCATE (chm_info%ub_a)
593 IF (
ASSOCIATED(chm_info%ub_b))
THEN
594 DEALLOCATE (chm_info%ub_b)
596 IF (
ASSOCIATED(chm_info%ub_c))
THEN
597 DEALLOCATE (chm_info%ub_c)
599 IF (
ASSOCIATED(chm_info%ub_k))
THEN
600 DEALLOCATE (chm_info%ub_k)
602 IF (
ASSOCIATED(chm_info%ub_r0))
THEN
603 DEALLOCATE (chm_info%ub_r0)
605 IF (
ASSOCIATED(chm_info%torsion_a))
THEN
606 DEALLOCATE (chm_info%torsion_a)
608 IF (
ASSOCIATED(chm_info%torsion_b))
THEN
609 DEALLOCATE (chm_info%torsion_b)
611 IF (
ASSOCIATED(chm_info%torsion_c))
THEN
612 DEALLOCATE (chm_info%torsion_c)
614 IF (
ASSOCIATED(chm_info%torsion_d))
THEN
615 DEALLOCATE (chm_info%torsion_d)
617 IF (
ASSOCIATED(chm_info%torsion_k))
THEN
618 DEALLOCATE (chm_info%torsion_k)
620 IF (
ASSOCIATED(chm_info%torsion_m))
THEN
621 DEALLOCATE (chm_info%torsion_m)
623 IF (
ASSOCIATED(chm_info%torsion_phi0))
THEN
624 DEALLOCATE (chm_info%torsion_phi0)
626 IF (
ASSOCIATED(chm_info%impr_a))
THEN
627 DEALLOCATE (chm_info%impr_a)
629 IF (
ASSOCIATED(chm_info%impr_b))
THEN
630 DEALLOCATE (chm_info%impr_b)
632 IF (
ASSOCIATED(chm_info%impr_c))
THEN
633 DEALLOCATE (chm_info%impr_c)
635 IF (
ASSOCIATED(chm_info%impr_d))
THEN
636 DEALLOCATE (chm_info%impr_d)
638 IF (
ASSOCIATED(chm_info%impr_k))
THEN
639 DEALLOCATE (chm_info%impr_k)
641 IF (
ASSOCIATED(chm_info%impr_phi0))
THEN
642 DEALLOCATE (chm_info%impr_phi0)
644 IF (
ASSOCIATED(chm_info%nonbond_a))
THEN
645 DEALLOCATE (chm_info%nonbond_a)
647 IF (
ASSOCIATED(chm_info%nonbond_eps))
THEN
648 DEALLOCATE (chm_info%nonbond_eps)
650 IF (
ASSOCIATED(chm_info%nonbond_rmin2))
THEN
651 DEALLOCATE (chm_info%nonbond_rmin2)
653 IF (
ASSOCIATED(chm_info%nonbond_a_14))
THEN
654 DEALLOCATE (chm_info%nonbond_a_14)
656 IF (
ASSOCIATED(chm_info%nonbond_eps_14))
THEN
657 DEALLOCATE (chm_info%nonbond_eps_14)
659 IF (
ASSOCIATED(chm_info%nonbond_rmin2_14))
THEN
660 DEALLOCATE (chm_info%nonbond_rmin2_14)
663 END SUBROUTINE deallocate_chm_info
672 SUBROUTINE deallocate_amb_info(amb_info)
675 IF (
ASSOCIATED(amb_info%bond_a))
THEN
676 DEALLOCATE (amb_info%bond_a)
678 IF (
ASSOCIATED(amb_info%bond_b))
THEN
679 DEALLOCATE (amb_info%bond_b)
681 IF (
ASSOCIATED(amb_info%bond_k))
THEN
682 DEALLOCATE (amb_info%bond_k)
684 IF (
ASSOCIATED(amb_info%bond_r0))
THEN
685 DEALLOCATE (amb_info%bond_r0)
687 IF (
ASSOCIATED(amb_info%bend_a))
THEN
688 DEALLOCATE (amb_info%bend_a)
690 IF (
ASSOCIATED(amb_info%bend_b))
THEN
691 DEALLOCATE (amb_info%bend_b)
693 IF (
ASSOCIATED(amb_info%bend_c))
THEN
694 DEALLOCATE (amb_info%bend_c)
696 IF (
ASSOCIATED(amb_info%bend_k))
THEN
697 DEALLOCATE (amb_info%bend_k)
699 IF (
ASSOCIATED(amb_info%bend_theta0))
THEN
700 DEALLOCATE (amb_info%bend_theta0)
702 IF (
ASSOCIATED(amb_info%torsion_a))
THEN
703 DEALLOCATE (amb_info%torsion_a)
705 IF (
ASSOCIATED(amb_info%torsion_b))
THEN
706 DEALLOCATE (amb_info%torsion_b)
708 IF (
ASSOCIATED(amb_info%torsion_c))
THEN
709 DEALLOCATE (amb_info%torsion_c)
711 IF (
ASSOCIATED(amb_info%torsion_d))
THEN
712 DEALLOCATE (amb_info%torsion_d)
714 IF (
ASSOCIATED(amb_info%torsion_k))
THEN
715 DEALLOCATE (amb_info%torsion_k)
717 IF (
ASSOCIATED(amb_info%torsion_m))
THEN
718 DEALLOCATE (amb_info%torsion_m)
720 IF (
ASSOCIATED(amb_info%torsion_phi0))
THEN
721 DEALLOCATE (amb_info%torsion_phi0)
723 IF (
ASSOCIATED(amb_info%nonbond_a))
THEN
724 DEALLOCATE (amb_info%nonbond_a)
726 IF (
ASSOCIATED(amb_info%nonbond_eps))
THEN
727 DEALLOCATE (amb_info%nonbond_eps)
729 IF (
ASSOCIATED(amb_info%nonbond_rmin2))
THEN
730 DEALLOCATE (amb_info%nonbond_rmin2)
732 IF (
ASSOCIATED(amb_info%raw_torsion_id))
THEN
733 DEALLOCATE (amb_info%raw_torsion_id)
735 IF (
ASSOCIATED(amb_info%raw_torsion_k))
THEN
736 DEALLOCATE (amb_info%raw_torsion_k)
738 IF (
ASSOCIATED(amb_info%raw_torsion_m))
THEN
739 DEALLOCATE (amb_info%raw_torsion_m)
741 IF (
ASSOCIATED(amb_info%raw_torsion_phi0))
THEN
742 DEALLOCATE (amb_info%raw_torsion_phi0)
745 END SUBROUTINE deallocate_amb_info
759 IF (
ASSOCIATED(inp_info%charge_atm))
THEN
760 DEALLOCATE (inp_info%charge_atm)
762 IF (
ASSOCIATED(inp_info%charge))
THEN
763 DEALLOCATE (inp_info%charge)
765 IF (
ASSOCIATED(inp_info%apol_atm))
THEN
766 DEALLOCATE (inp_info%apol_atm)
768 IF (
ASSOCIATED(inp_info%apol))
THEN
769 DEALLOCATE (inp_info%apol)
771 IF (
ASSOCIATED(inp_info%cpol_atm))
THEN
772 DEALLOCATE (inp_info%cpol_atm)
774 IF (
ASSOCIATED(inp_info%cpol))
THEN
775 DEALLOCATE (inp_info%cpol)
777 IF (
ASSOCIATED(inp_info%bond_kind))
THEN
778 DEALLOCATE (inp_info%bond_kind)
780 IF (
ASSOCIATED(inp_info%bond_a))
THEN
781 DEALLOCATE (inp_info%bond_a)
783 IF (
ASSOCIATED(inp_info%bond_b))
THEN
784 DEALLOCATE (inp_info%bond_b)
786 IF (
ASSOCIATED(inp_info%bond_k))
THEN
787 DEALLOCATE (inp_info%bond_k)
789 IF (
ASSOCIATED(inp_info%bond_r0))
THEN
790 DEALLOCATE (inp_info%bond_r0)
792 IF (
ASSOCIATED(inp_info%bond_cs))
THEN
793 DEALLOCATE (inp_info%bond_cs)
795 IF (
ASSOCIATED(inp_info%bend_kind))
THEN
796 DEALLOCATE (inp_info%bend_kind)
798 IF (
ASSOCIATED(inp_info%bend_a))
THEN
799 DEALLOCATE (inp_info%bend_a)
801 IF (
ASSOCIATED(inp_info%bend_b))
THEN
802 DEALLOCATE (inp_info%bend_b)
804 IF (
ASSOCIATED(inp_info%bend_c))
THEN
805 DEALLOCATE (inp_info%bend_c)
807 IF (
ASSOCIATED(inp_info%bend_k))
THEN
808 DEALLOCATE (inp_info%bend_k)
810 IF (
ASSOCIATED(inp_info%bend_theta0))
THEN
811 DEALLOCATE (inp_info%bend_theta0)
813 IF (
ASSOCIATED(inp_info%bend_legendre))
THEN
814 DO i = 1,
SIZE(inp_info%bend_legendre)
815 IF (
ASSOCIATED(inp_info%bend_legendre(i)%coeffs))
THEN
816 DEALLOCATE (inp_info%bend_legendre(i)%coeffs)
817 NULLIFY (inp_info%bend_legendre(i)%coeffs)
820 DEALLOCATE (inp_info%bend_legendre)
821 NULLIFY (inp_info%bend_legendre)
823 IF (
ASSOCIATED(inp_info%bend_cb))
THEN
824 DEALLOCATE (inp_info%bend_cb)
826 IF (
ASSOCIATED(inp_info%bend_r012))
THEN
827 DEALLOCATE (inp_info%bend_r012)
829 IF (
ASSOCIATED(inp_info%bend_r032))
THEN
830 DEALLOCATE (inp_info%bend_r032)
832 IF (
ASSOCIATED(inp_info%bend_kbs12))
THEN
833 DEALLOCATE (inp_info%bend_kbs12)
835 IF (
ASSOCIATED(inp_info%bend_kbs32))
THEN
836 DEALLOCATE (inp_info%bend_kbs32)
838 IF (
ASSOCIATED(inp_info%bend_kss))
THEN
839 DEALLOCATE (inp_info%bend_kss)
841 IF (
ASSOCIATED(inp_info%ub_kind))
THEN
842 DEALLOCATE (inp_info%ub_kind)
844 IF (
ASSOCIATED(inp_info%ub_a))
THEN
845 DEALLOCATE (inp_info%ub_a)
847 IF (
ASSOCIATED(inp_info%ub_b))
THEN
848 DEALLOCATE (inp_info%ub_b)
850 IF (
ASSOCIATED(inp_info%ub_c))
THEN
851 DEALLOCATE (inp_info%ub_c)
853 IF (
ASSOCIATED(inp_info%ub_k))
THEN
854 DEALLOCATE (inp_info%ub_k)
856 IF (
ASSOCIATED(inp_info%ub_r0))
THEN
857 DEALLOCATE (inp_info%ub_r0)
859 IF (
ASSOCIATED(inp_info%torsion_kind))
THEN
860 DEALLOCATE (inp_info%torsion_kind)
862 IF (
ASSOCIATED(inp_info%torsion_a))
THEN
863 DEALLOCATE (inp_info%torsion_a)
865 IF (
ASSOCIATED(inp_info%torsion_b))
THEN
866 DEALLOCATE (inp_info%torsion_b)
868 IF (
ASSOCIATED(inp_info%torsion_c))
THEN
869 DEALLOCATE (inp_info%torsion_c)
871 IF (
ASSOCIATED(inp_info%torsion_d))
THEN
872 DEALLOCATE (inp_info%torsion_d)
874 IF (
ASSOCIATED(inp_info%torsion_k))
THEN
875 DEALLOCATE (inp_info%torsion_k)
877 IF (
ASSOCIATED(inp_info%torsion_m))
THEN
878 DEALLOCATE (inp_info%torsion_m)
880 IF (
ASSOCIATED(inp_info%torsion_phi0))
THEN
881 DEALLOCATE (inp_info%torsion_phi0)
883 IF (
ASSOCIATED(inp_info%impr_kind))
THEN
884 DEALLOCATE (inp_info%impr_kind)
886 IF (
ASSOCIATED(inp_info%impr_a))
THEN
887 DEALLOCATE (inp_info%impr_a)
889 IF (
ASSOCIATED(inp_info%impr_b))
THEN
890 DEALLOCATE (inp_info%impr_b)
892 IF (
ASSOCIATED(inp_info%impr_c))
THEN
893 DEALLOCATE (inp_info%impr_c)
895 IF (
ASSOCIATED(inp_info%impr_d))
THEN
896 DEALLOCATE (inp_info%impr_d)
898 IF (
ASSOCIATED(inp_info%impr_k))
THEN
899 DEALLOCATE (inp_info%impr_k)
901 IF (
ASSOCIATED(inp_info%impr_phi0))
THEN
902 DEALLOCATE (inp_info%impr_phi0)
904 IF (
ASSOCIATED(inp_info%opbend_kind))
THEN
905 DEALLOCATE (inp_info%opbend_kind)
907 IF (
ASSOCIATED(inp_info%opbend_a))
THEN
908 DEALLOCATE (inp_info%opbend_a)
910 IF (
ASSOCIATED(inp_info%opbend_b))
THEN
911 DEALLOCATE (inp_info%opbend_b)
913 IF (
ASSOCIATED(inp_info%opbend_c))
THEN
914 DEALLOCATE (inp_info%opbend_c)
916 IF (
ASSOCIATED(inp_info%opbend_d))
THEN
917 DEALLOCATE (inp_info%opbend_d)
919 IF (
ASSOCIATED(inp_info%opbend_k))
THEN
920 DEALLOCATE (inp_info%opbend_k)
922 IF (
ASSOCIATED(inp_info%opbend_phi0))
THEN
923 DEALLOCATE (inp_info%opbend_phi0)
925 IF (
ASSOCIATED(inp_info%nonbonded))
THEN
928 IF (
ASSOCIATED(inp_info%nonbonded14))
THEN
931 IF (
ASSOCIATED(inp_info%shell_list))
THEN
934 IF (
ASSOCIATED(inp_info%damping_list))
THEN
935 DEALLOCATE (inp_info%damping_list)
Define all structure types related to force field kinds.
Define all structures types related to force_fields.
subroutine, public deallocate_inp_info(inp_info)
Specific function to deallocate the inp_info.
subroutine, public init_ff_type(ff_type)
Just NULLIFY and zero all the stuff
subroutine, public init_inp_info(inp_info)
Specific function to initialize the inp_info.
subroutine, public deallocate_ff_type(ff_type)
Just DEALLOCATE all the stuff
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
integer, parameter, public default_path_length
subroutine, public pair_potential_p_release(potparm)
Release Data-structure that constains potential parameters.
subroutine, public shell_p_release(shell_list)
...