18 #include "../base/base_uses.f90"
23 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
24 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'pint_transformations'
43 TYPE(pint_env_type),
INTENT(IN) :: pint_env
44 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(out), &
45 OPTIONAL,
TARGET :: ux
46 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(in), &
49 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: my_ux, my_x
53 IF (
PRESENT(x)) my_x => x
54 IF (
PRESENT(ux)) my_ux => ux
55 cpassert(
ASSOCIATED(my_ux))
56 cpassert(
ASSOCIATED(my_x))
59 CALL staging_x2u(pint_env%staging_env, ux=my_ux, x=my_x)
75 TYPE(pint_env_type),
INTENT(IN) :: pint_env
76 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(in), &
77 OPTIONAL,
TARGET :: ux
78 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(out), &
81 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: my_ux, my_x
85 IF (
PRESENT(x)) my_x => x
86 IF (
PRESENT(ux)) my_ux => ux
87 cpassert(
ASSOCIATED(my_ux))
88 cpassert(
ASSOCIATED(my_x))
91 CALL staging_u2x(pint_env%staging_env, ux=my_ux, x=my_x)
110 TYPE(pint_env_type),
INTENT(IN) :: pint_env
111 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(out), &
112 OPTIONAL,
TARGET :: uf
113 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(in), &
114 OPTIONAL,
TARGET :: f
116 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: my_f, my_uf
120 IF (
PRESENT(f)) my_f => f
121 IF (
PRESENT(uf)) my_uf => uf
122 cpassert(
ASSOCIATED(my_uf))
123 cpassert(
ASSOCIATED(my_f))
126 CALL staging_f2uf(pint_env%staging_env, uf=my_uf, f=my_f)
131 my_uf = my_uf/pint_env%mass_fict*pint_env%propagator%physpotscale
Defines the basic variable types.
integer, parameter, public dp
Data type and methods dealing with PI calcs in normal mode coords.
subroutine, public normalmode_x2u(normalmode_env, ux, x)
Transforms from the x into the u variables using a normal mode transformation for the positions.
subroutine, public normalmode_u2x(normalmode_env, ux, x)
transform from the u variable to the x (back normal mode transformation for the positions)
subroutine, public normalmode_f2uf(normalmode_env, uf, f)
normalmode transformation for the forces
Data type and methods dealing with PI calcs in staging coordinates.
pure subroutine, public staging_x2u(staging_env, ux, x)
Transforms from the x into the u variables using a staging transformation for the positions.
pure subroutine, public staging_f2uf(staging_env, uf, f)
staging transformation for the forces
pure subroutine, public staging_u2x(staging_env, ux, x)
transform from the u variable to the x (back staging transformation for the positions)