19 #include "../base/base_uses.f90"
24 PUBLIC :: thermal_regions_type, &
25 thermal_region_type, &
29 TYPE thermal_regions_type
30 INTEGER :: nregions = 0
31 LOGICAL :: force_rescaling = .false.
32 REAL(KIND=
dp) :: temp_reg0 = 0.0_dp
33 LOGICAL,
DIMENSION(:),
POINTER :: do_langevin => null()
34 TYPE(section_vals_type),
POINTER :: section => null()
35 TYPE(thermal_region_type),
DIMENSION(:),
POINTER :: thermal_region => null()
36 END TYPE thermal_regions_type
38 TYPE thermal_region_type
39 INTEGER :: region_index = 0, npart = 0
40 INTEGER,
DIMENSION(:),
POINTER :: part_index => null()
41 REAL(KIND=
dp) :: ekin = 0.0_dp, noisy_gamma_region = 0.0_dp, temperature = 0.0_dp, temp_expected = 0.0_dp, temp_tol = 0.0_dp
42 END TYPE thermal_region_type
44 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'thermal_region_types'
53 TYPE(thermal_regions_type),
INTENT(OUT) :: thermal_regions
55 mark_used(thermal_regions)
65 TYPE(thermal_regions_type),
INTENT(INOUT) :: thermal_regions
69 IF (
ASSOCIATED(thermal_regions%thermal_region))
THEN
70 DO ireg = 1,
SIZE(thermal_regions%thermal_region)
71 DEALLOCATE (thermal_regions%thermal_region(ireg)%part_index)
73 DEALLOCATE (thermal_regions%thermal_region)
75 IF (
ASSOCIATED(thermal_regions%do_langevin))
THEN
76 DEALLOCATE (thermal_regions%do_langevin)
Defines the basic variable types.
integer, parameter, public dp
Thermal regions type: to initialize and control the temperature of different regions.
subroutine, public release_thermal_regions(thermal_regions)
release thermal_regions
subroutine, public allocate_thermal_regions(thermal_regions)
allocate thermal_regions