27 #include "./base/base_uses.f90"
33 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'force_field_types'
39 CHARACTER(LEN=default_string_length),
POINTER :: charge_atm(:)
40 REAL(KIND=
dp),
POINTER :: charge(:)
41 CHARACTER(LEN=default_string_length),
POINTER :: apol_atm(:)
42 REAL(KIND=
dp),
POINTER :: apol(:)
43 CHARACTER(LEN=default_string_length),
POINTER :: cpol_atm(:)
44 REAL(KIND=
dp),
POINTER :: cpol(:)
45 INTEGER,
POINTER :: bond_kind(:)
46 CHARACTER(LEN=default_string_length),
POINTER :: bond_a(:)
47 CHARACTER(LEN=default_string_length),
POINTER :: bond_b(:)
48 REAL(KIND=
dp),
POINTER :: bond_k(:, :)
49 REAL(KIND=
dp),
POINTER :: bond_r0(:)
50 REAL(KIND=
dp),
POINTER :: bond_cs(:)
51 INTEGER,
POINTER :: bend_kind(:)
52 CHARACTER(LEN=default_string_length),
POINTER :: bend_a(:)
53 CHARACTER(LEN=default_string_length),
POINTER :: bend_b(:)
54 CHARACTER(LEN=default_string_length),
POINTER :: bend_c(:)
55 REAL(KIND=
dp),
POINTER :: bend_k(:)
56 REAL(KIND=
dp),
POINTER :: bend_theta0(:)
57 REAL(KIND=
dp),
POINTER :: bend_cb(:)
58 REAL(KIND=
dp),
POINTER,
DIMENSION(:) :: bend_r012, &
63 TYPE(legendre_data_type),
POINTER,
DIMENSION(:):: bend_legendre
64 INTEGER,
POINTER :: ub_kind(:)
65 CHARACTER(LEN=default_string_length),
POINTER :: ub_a(:)
66 CHARACTER(LEN=default_string_length),
POINTER :: ub_b(:)
67 CHARACTER(LEN=default_string_length),
POINTER :: ub_c(:)
68 REAL(KIND=
dp),
POINTER :: ub_k(:, :)
69 REAL(KIND=
dp),
POINTER :: ub_r0(:)
70 INTEGER,
POINTER :: torsion_kind(:)
71 CHARACTER(LEN=default_string_length),
POINTER :: torsion_a(:)
72 CHARACTER(LEN=default_string_length),
POINTER :: torsion_b(:)
73 CHARACTER(LEN=default_string_length),
POINTER :: torsion_c(:)
74 CHARACTER(LEN=default_string_length),
POINTER :: torsion_d(:)
75 REAL(KIND=
dp),
POINTER :: torsion_k(:)
76 INTEGER,
POINTER :: torsion_m(:)
77 REAL(KIND=
dp),
POINTER :: torsion_phi0(:)
78 INTEGER,
POINTER :: impr_kind(:)
79 CHARACTER(LEN=default_string_length),
POINTER :: impr_a(:)
80 CHARACTER(LEN=default_string_length),
POINTER :: impr_b(:)
81 CHARACTER(LEN=default_string_length),
POINTER :: impr_c(:)
82 CHARACTER(LEN=default_string_length),
POINTER :: impr_d(:)
83 REAL(KIND=
dp),
POINTER :: impr_k(:)
84 REAL(KIND=
dp),
POINTER :: impr_phi0(:)
85 INTEGER,
POINTER :: opbend_kind(:)
86 CHARACTER(LEN=default_string_length),
POINTER :: opbend_a(:)
87 CHARACTER(LEN=default_string_length),
POINTER :: opbend_b(:)
88 CHARACTER(LEN=default_string_length),
POINTER :: opbend_c(:)
89 CHARACTER(LEN=default_string_length),
POINTER :: opbend_d(:)
90 REAL(KIND=
dp),
POINTER :: opbend_k(:)
91 REAL(KIND=
dp),
POINTER :: opbend_phi0(:)
92 TYPE(pair_potential_p_type),
POINTER :: nonbonded
93 TYPE(pair_potential_p_type),
POINTER :: nonbonded14
94 TYPE(shell_p_type),
DIMENSION(:),
POINTER :: shell_list
95 TYPE(damping_info_type),
DIMENSION(:),
POINTER :: damping_list
96 END TYPE input_info_type
100 CHARACTER(LEN=default_string_length),
POINTER :: bond_a(:)
101 CHARACTER(LEN=default_string_length),
POINTER :: bond_b(:)
102 REAL(KIND=
dp),
POINTER :: bond_k(:)
103 REAL(KIND=
dp),
POINTER :: bond_r0(:)
104 CHARACTER(LEN=default_string_length),
POINTER :: bend_a(:)
105 CHARACTER(LEN=default_string_length),
POINTER :: bend_b(:)
106 CHARACTER(LEN=default_string_length),
POINTER :: bend_c(:)
107 REAL(KIND=
dp),
POINTER :: bend_k(:)
108 REAL(KIND=
dp),
POINTER :: bend_theta0(:)
109 CHARACTER(LEN=default_string_length),
POINTER :: ub_a(:)
110 CHARACTER(LEN=default_string_length),
POINTER :: ub_b(:)
111 CHARACTER(LEN=default_string_length),
POINTER :: ub_c(:)
112 REAL(KIND=
dp),
POINTER :: ub_k(:)
113 REAL(KIND=
dp),
POINTER :: ub_r0(:)
114 CHARACTER(LEN=default_string_length),
POINTER :: torsion_a(:)
115 CHARACTER(LEN=default_string_length),
POINTER :: torsion_b(:)
116 CHARACTER(LEN=default_string_length),
POINTER :: torsion_c(:)
117 CHARACTER(LEN=default_string_length),
POINTER :: torsion_d(:)
118 REAL(KIND=
dp),
POINTER :: torsion_k(:)
119 INTEGER,
POINTER :: torsion_m(:)
120 REAL(KIND=
dp),
POINTER :: torsion_phi0(:)
121 CHARACTER(LEN=default_string_length),
POINTER :: impr_a(:)
122 CHARACTER(LEN=default_string_length),
POINTER :: impr_b(:)
123 CHARACTER(LEN=default_string_length),
POINTER :: impr_c(:)
124 CHARACTER(LEN=default_string_length),
POINTER :: impr_d(:)
125 REAL(KIND=
dp),
POINTER :: impr_k(:)
126 REAL(KIND=
dp),
POINTER :: impr_phi0(:)
127 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a(:)
128 REAL(KIND=
dp),
POINTER :: nonbond_eps(:)
129 REAL(KIND=
dp),
POINTER :: nonbond_rmin2(:)
130 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a_14(:)
131 REAL(KIND=
dp),
POINTER :: nonbond_eps_14(:)
132 REAL(KIND=
dp),
POINTER :: nonbond_rmin2_14(:)
133 END TYPE charmm_info_type
137 CHARACTER(LEN=default_string_length),
POINTER :: bond_a(:)
138 CHARACTER(LEN=default_string_length),
POINTER :: bond_b(:)
139 REAL(KIND=
dp),
POINTER :: bond_k(:)
140 REAL(KIND=
dp),
POINTER :: bond_r0(:)
141 CHARACTER(LEN=default_string_length),
POINTER :: bend_a(:)
142 CHARACTER(LEN=default_string_length),
POINTER :: bend_b(:)
143 CHARACTER(LEN=default_string_length),
POINTER :: bend_c(:)
144 REAL(KIND=
dp),
POINTER :: bend_k(:)
145 REAL(KIND=
dp),
POINTER :: bend_theta0(:)
146 CHARACTER(LEN=default_string_length),
POINTER :: torsion_a(:)
147 CHARACTER(LEN=default_string_length),
POINTER :: torsion_b(:)
148 CHARACTER(LEN=default_string_length),
POINTER :: torsion_c(:)
149 CHARACTER(LEN=default_string_length),
POINTER :: torsion_d(:)
150 REAL(KIND=
dp),
POINTER :: torsion_k(:)
151 INTEGER,
POINTER :: torsion_m(:)
152 REAL(KIND=
dp),
POINTER :: torsion_phi0(:)
153 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a(:)
154 REAL(KIND=
dp),
POINTER :: nonbond_eps(:)
155 REAL(KIND=
dp),
POINTER :: nonbond_rmin2(:)
156 INTEGER,
POINTER :: raw_torsion_id(:, :)
157 REAL(KIND=
dp),
POINTER :: raw_torsion_k(:)
158 REAL(KIND=
dp),
POINTER :: raw_torsion_m(:)
159 REAL(KIND=
dp),
POINTER :: raw_torsion_phi0(:)
160 END TYPE amber_info_type
163 TYPE gromos_info_type
164 INTEGER :: ff_gromos_type
165 REAL(KIND=
dp),
POINTER :: solvent_k(:)
166 REAL(KIND=
dp),
POINTER :: solvent_r0(:)
167 REAL(KIND=
dp),
POINTER :: bond_k(:)
168 REAL(KIND=
dp),
POINTER :: bond_r0(:)
169 REAL(KIND=
dp),
POINTER :: bend_k(:)
170 REAL(KIND=
dp),
POINTER :: bend_theta0(:)
171 REAL(KIND=
dp),
POINTER :: torsion_k(:)
172 INTEGER,
POINTER :: torsion_m(:)
173 REAL(KIND=
dp),
POINTER :: torsion_phi0(:)
174 REAL(KIND=
dp),
POINTER :: impr_k(:)
175 REAL(KIND=
dp),
POINTER :: impr_phi0(:)
176 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a(:)
177 REAL(KIND=
dp),
POINTER :: nonbond_c6(:, :)
178 REAL(KIND=
dp),
POINTER :: nonbond_c12(:, :)
179 CHARACTER(LEN=default_string_length),
POINTER :: nonbond_a_14(:)
180 REAL(KIND=
dp),
POINTER :: nonbond_c6_14(:, :)
181 REAL(KIND=
dp),
POINTER :: nonbond_c12_14(:, :)
182 END TYPE gromos_info_type
185 TYPE force_field_type
186 LOGICAL :: shift_cutoff, &
190 multiple_potential, &
191 ignore_missing_critical
193 REAL(KIND=
dp) :: rcut_nb
194 REAL(KIND=
dp) :: ei_scale14
195 REAL(KIND=
dp) :: vdw_scale14
196 REAL(KIND=
dp) :: eps_spline, &
201 CHARACTER(LEN=default_path_length) :: ff_file_name
202 TYPE(input_info_type),
POINTER :: inp_info
203 TYPE(charmm_info_type),
POINTER :: chm_info
204 TYPE(gromos_info_type),
POINTER :: gro_info
205 TYPE(amber_info_type),
POINTER :: amb_info
206 END TYPE force_field_type
217 PUBLIC :: charmm_info_type, &
231 TYPE(force_field_type),
INTENT(INOUT) :: ff_type
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)
271 TYPE(gromos_info_type),
POINTER :: 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)
301 TYPE(charmm_info_type),
POINTER :: 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)
347 TYPE(amber_info_type),
POINTER :: 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
383 TYPE(input_info_type),
POINTER :: inp_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)
450 TYPE(force_field_type),
INTENT(INOUT) :: ff_type
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)
497 TYPE(gromos_info_type),
POINTER :: 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)
561 TYPE(charmm_info_type),
POINTER :: 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)
673 TYPE(amber_info_type),
POINTER :: 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
755 TYPE(input_info_type),
POINTER :: inp_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)
...