Line data Source code
1 : module neu_support
2 : use neu_def
3 : use neu_lib
4 : use math_lib
5 : use const_def, only: dp
6 : use utils_lib, only: mkdir, mesa_error
7 :
8 : implicit none
9 :
10 : contains
11 :
12 1 : subroutine do_test_neutrinos()
13 : real(dp), parameter :: logT_start = 6.d0, logT_end = 10.5d0
14 : real(dp), parameter :: logRho_start = 6.d0, logRho_end = 10.5d0
15 : real(dp), parameter :: abar_start = 1.d0, abar_end = 60d0
16 : real(dp), parameter :: zbar_start = 1.d0, zbar_end = 26d0
17 :
18 : integer, parameter :: num_temps = 10, num_rhos = 10, num_abars = 10, num_zbars = 10
19 :
20 3 : real(dp) :: T, logT, Rho, logRho, abar, zbar
21 :
22 : integer :: i, j, k, l, info
23 :
24 : logical :: flags(num_neu_types) ! true if should include the type
25 :
26 6 : real(dp) :: loss(num_neu_rvs) ! total from all sources
27 31 : real(dp) :: sources(num_neu_types, num_neu_rvs)
28 :
29 6 : flags = .true.
30 :
31 11 : do i = 1, num_temps
32 :
33 10 : logT = logT_start + (i - 1)*(logT_end - logT_start)/num_temps
34 10 : T = exp10(logT)
35 :
36 111 : do j = 1, num_rhos
37 100 : logRho = logRho_start + (j - 1)*(logRho_end - logRho_start)/num_rhos
38 100 : rho = exp10(logRho)
39 1110 : do k = 1, num_abars
40 1000 : abar = abar_start + (k - 1)*(abar_end - abar_start)/num_abars
41 :
42 11100 : do l = 1, num_zbars
43 10000 : zbar = zbar_start + (l - 1)*(zbar_end - zbar_start)/num_zbars
44 :
45 10000 : call neu_get(T, logT, Rho, logRho, abar, zbar, 7.5d0, flags, loss, sources, info)
46 :
47 11000 : write (*, '(99(1pe26.16))') logT, logRho, abar, zbar, loss, sources
48 : end do
49 : end do
50 : end do
51 : end do
52 :
53 1 : end subroutine do_test_neutrinos
54 :
55 : end module neu_support
56 :
|