20 |
|
public :: getDipoleMoment |
21 |
|
|
22 |
|
type :: MomentList |
23 |
< |
integer :: ident |
23 |
> |
integer :: c_ident |
24 |
|
real(kind=DP) :: dipole_moment = 0.0_DP |
25 |
|
end type MomentList |
26 |
|
|
28 |
|
|
29 |
|
contains |
30 |
|
|
31 |
< |
subroutine newDipoleType(ident, dipole_moment, status) |
32 |
< |
integer,intent(in) :: ident |
31 |
> |
subroutine newDipoleType(c_ident, dipole_moment, status) |
32 |
> |
integer,intent(in) :: c_ident |
33 |
|
real(kind=dp),intent(in) :: dipole_moment |
34 |
|
integer,intent(out) :: status |
35 |
< |
integer :: nAtypes |
35 |
> |
integer :: nAtypes, myATID |
36 |
|
|
37 |
|
status = 0 |
38 |
+ |
myATID = getFirstMatchingElement(atypes, "c_ident", c_ident) |
39 |
|
|
40 |
|
!! Be simple-minded and assume that we need a MomentMap that |
41 |
|
!! is the same size as the total number of atom types |
55 |
|
|
56 |
|
end if |
57 |
|
|
58 |
< |
if (ident .gt. size(MomentMap)) then |
58 |
> |
if (myATID .gt. size(MomentMap)) then |
59 |
|
status = -1 |
60 |
|
return |
61 |
|
endif |
62 |
|
|
63 |
|
! set the values for MomentMap for this atom type: |
64 |
|
|
65 |
< |
MomentMap(ident)%ident = ident |
66 |
< |
MomentMap(ident)%dipole_moment = dipole_moment |
65 |
> |
MomentMap(myATID)%c_ident = c_ident |
66 |
> |
MomentMap(myATID)%dipole_moment = dipole_moment |
67 |
|
|
68 |
|
end subroutine newDipoleType |
69 |
|
|