module globals implicit none include "mpif.h" integer, parameter :: Grid_size = 80 real (8), parameter :: errorstop = 1e-4 real (8), parameter :: sorfracfinal = 1.8 integer, parameter :: maxiter = 10000 character (13), parameter :: design_file = 'sample_design' ! material types for storing the heat sink design in `heatsink_design' byte, parameter :: Aluminium = 1 byte, parameter :: Aluminium_touching_cpu = 2 byte, parameter :: Air = 3 ! physical parameters (SI units) real (8), parameter :: Domain_size = 0.04 ! (4 cm)^3 region real (8), parameter :: Chip_size = 0.02 ! (2 cm)^2 chip real (8), parameter :: Delta = Domain_size / real (Grid_size) real (8), parameter :: CPU_watts = 50.0 ! physical constants real (8), parameter :: k_al = 235.0 ! thermal conductivity of aluminium real (8), parameter :: k_air = 0.026 ! thermal conductivity of air real (8), parameter :: C_cpu = CPU_watts / (Chip_size**2) / k_al ! temperature gradient at CPU boundary real (8), parameter :: C_al_factor = k_air / k_al / 0.0001 ! for temperature difference at air boundary real (8), parameter :: Celsius_offset = 273.15 real (8), parameter :: Air_temp_C = 25.0 real (8), parameter :: Air_temp_K = Celsius_offset + Air_temp_C real (8), parameter :: onesixth = 1.0 / 6.0 ! array describing the structure of the heatsink byte, dimension (:, :, :), allocatable :: heatsink_design real (8), dimension (:, :, :), allocatable :: temp3d ! MPI values integer :: mpi_cpu_count, mpi_cpu_id integer :: mpi_error_code integer, dimension(MPI_STATUS_SIZE) :: mpistatus end module globals