15 #include "../base/base_uses.f90"
23 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'shell_potential_types'
29 REAL(dp) :: charge_core = 0.0_dp, &
31 REAL(dp) :: mass_core = 0.0_dp, &
34 REAL(dp) :: k2_spring = 0.0_dp, k4_spring = 0.0_dp
35 REAL(dp) :: max_dist = 0.0_dp
36 REAL(dp) :: shell_cutoff = 0.0_dp
37 END TYPE shell_kind_type
41 CHARACTER(LEN=default_string_length) :: atm_name =
""
42 TYPE(shell_kind_type),
POINTER :: shell => null()
52 PUBLIC :: shell_p_type, shell_kind_type
69 ELEMENTAL SUBROUTINE get_shell(shell, charge, charge_core, charge_shell, mass_core, &
70 mass_shell, k2_spring, k4_spring, max_dist, shell_cutoff)
72 TYPE(shell_kind_type),
INTENT(IN) :: shell
73 REAL(kind=
dp),
INTENT(OUT),
OPTIONAL :: charge, charge_core, charge_shell, &
74 mass_core, mass_shell, k2_spring, &
75 k4_spring, max_dist, shell_cutoff
77 IF (
PRESENT(charge)) charge = shell%charge_core + shell%charge_shell
78 IF (
PRESENT(charge_core)) charge_core = shell%charge_core
79 IF (
PRESENT(charge_shell)) charge_shell = shell%charge_shell
80 IF (
PRESENT(mass_core)) mass_core = shell%mass_core
81 IF (
PRESENT(mass_shell)) mass_shell = shell%mass_shell
82 IF (
PRESENT(k2_spring)) k2_spring = shell%k2_spring
83 IF (
PRESENT(k4_spring)) k4_spring = shell%k4_spring
84 IF (
PRESENT(max_dist)) max_dist = shell%max_dist
85 IF (
PRESENT(shell_cutoff)) shell_cutoff = shell%shell_cutoff
96 TYPE(shell_p_type),
DIMENSION(:),
POINTER :: shell_list
97 INTEGER,
INTENT(IN) :: ndim
101 cpassert(.NOT.
ASSOCIATED(shell_list))
102 ALLOCATE (shell_list(ndim))
105 ALLOCATE (shell_list(i)%shell)
115 TYPE(shell_p_type),
DIMENSION(:),
POINTER :: shell_list
119 IF (
ASSOCIATED(shell_list))
THEN
120 DO i = 1,
SIZE(shell_list)
121 DEALLOCATE (shell_list(i)%shell)
123 DEALLOCATE (shell_list)
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
subroutine, public shell_p_release(shell_list)
...
elemental subroutine, public get_shell(shell, charge, charge_core, charge_shell, mass_core, mass_shell, k2_spring, k4_spring, max_dist, shell_cutoff)
...
subroutine, public shell_p_create(shell_list, ndim)
...