@@ -28,13 +28,13 @@ module kap_eval
28
28
use kap_def
29
29
use const_def, only: dp, ln10, sige
30
30
use math_lib
31
-
31
+
32
32
implicit none
33
-
34
-
33
+
34
+
35
35
contains
36
-
37
-
36
+
37
+
38
38
subroutine Get_kap_Results ( &
39
39
rq , zbar , X , Z , XC , XN , XO , XNe , logRho , logT , &
40
40
lnfree_e , d_lnfree_e_dlnRho , d_lnfree_e_dlnT , &
@@ -67,7 +67,7 @@ subroutine Get_kap_Results( &
67
67
type (auto_diff_real_2var_order1) :: blend_logT, blend_logR, blend
68
68
69
69
real (dp) :: frac_Type2, frac_highT, frac_lowT
70
-
70
+
71
71
logical :: dbg
72
72
73
73
include ' formats'
@@ -221,13 +221,13 @@ subroutine Get_kap_Results( &
221
221
dlnkap_rad_dlnT = logkap_rad% d1val2
222
222
223
223
call combine_rad_with_conduction( &
224
- rq, Rho, logRho, T , logT, zbar, &
224
+ rq, logRho, logT, zbar, &
225
225
kap_rad, dlnkap_rad_dlnRho, dlnkap_rad_dlnT, &
226
226
kap, dlnkap_dlnRho, dlnkap_dlnT, ierr)
227
-
227
+
228
228
end subroutine Get_kap_Results
229
-
230
-
229
+
230
+
231
231
subroutine Get_kap_Results_blend_T ( &
232
232
rq , X , Z , XC , XN , XO , XNe , logRho_in , logT_in , &
233
233
frac_lowT , frac_highT , frac_Type2 , kap , dlnkap_dlnRho , dlnkap_dlnT , ierr )
@@ -237,7 +237,7 @@ subroutine Get_kap_Results_blend_T( &
237
237
238
238
! INPUT
239
239
type (Kap_General_Info), pointer :: rq
240
- real (dp), intent (in ) :: X, Z, XC, XN, XO, XNe ! composition
240
+ real (dp), intent (in ) :: X, Z, XC, XN, XO, XNe ! composition
241
241
real (dp), intent (in ) :: logRho_in ! density
242
242
real (dp), intent (in ) :: logT_in ! temperature
243
243
@@ -255,7 +255,7 @@ subroutine Get_kap_Results_blend_T( &
255
255
real (dp) :: lowT_logT_max, logT_min
256
256
257
257
logical :: clipped_Rho
258
-
258
+
259
259
logical :: dbg
260
260
261
261
real (dp) :: alfa, beta, &
@@ -313,7 +313,7 @@ subroutine Get_kap_Results_blend_T( &
313
313
case (kap_lowT_AESOPUS)
314
314
lowT_logT_max = kA % max_logT
315
315
case default
316
- lowT_logT_max = kap_lowT_z_tables(rq% kap_lowT_option)% ar(1 )% x_tables(1 )% logT_max
316
+ lowT_logT_max = kap_lowT_z_tables(rq% kap_lowT_option)% ar(1 )% x_tables(1 )% logT_max
317
317
end select
318
318
319
319
@@ -347,7 +347,7 @@ subroutine Get_kap_Results_blend_T( &
347
347
alfa0 = (logT - lower_bdy) / (upper_bdy - lower_bdy)
348
348
d_alfa0_dlnT = 1d0 / (upper_bdy - lower_bdy)/ ln10
349
349
350
- ! must smooth the transitions near alfa = 0.0 and 1.0
350
+ ! must smooth the transitions near alfa = 0.0 and 1.0
351
351
! Rich Townsend's smoothing function for this
352
352
alfa = - alfa0* alfa0* alfa0* (- 10d0 + alfa0* (15d0 - 6d0 * alfa0))
353
353
d_alfa_dlnT = 30d0 * (alfa0 - 1d0 )* (alfa0 - 1d0 )* alfa0* alfa0* d_alfa0_dlnT
@@ -398,7 +398,7 @@ subroutine Get_kap_lowT_Results( &
398
398
399
399
! INPUT
400
400
type (Kap_General_Info), pointer :: rq
401
- real (dp), intent (in ) :: X, Z, XC, XN, XO, XNe ! composition
401
+ real (dp), intent (in ) :: X, Z, XC, XN, XO, XNe ! composition
402
402
real (dp), intent (in ) :: logRho_in ! density
403
403
real (dp), intent (in ) :: logT_in ! temperature
404
404
! free_e := total combined number per nucleon of free electrons and positrons
@@ -455,7 +455,7 @@ subroutine Get_kap_lowT_Results( &
455
455
call AESOPUS_get(Zbase, X, XC, XN, XO, logRho, logT, &
456
456
kap, dlnkap_dlnRho, dlnkap_dlnT, ierr)
457
457
458
-
458
+
459
459
case default
460
460
if (rq% kap_lowT_option == kap_lowT_test) then
461
461
if (dbg) write (* ,* ) ' Calling test for lowT'
@@ -489,7 +489,7 @@ subroutine Get_kap_highT_Results(rq, &
489
489
490
490
! INPUT
491
491
type (Kap_General_Info), pointer :: rq
492
- real (dp), intent (in ) :: X, Z, XC_in, XN_in, XO_in, XNe_in ! composition
492
+ real (dp), intent (in ) :: X, Z, XC_in, XN_in, XO_in, XNe_in ! composition
493
493
real (dp), intent (in ) :: logRho_in ! density
494
494
real (dp), intent (in ) :: logT_in ! temperature
495
495
@@ -700,24 +700,24 @@ end subroutine Get_kap_highT_Results
700
700
701
701
702
702
subroutine combine_rad_with_conduction ( &
703
- rq , Rho , logRho , T , logT , zbar , &
703
+ rq , logRho , logT , zbar , &
704
704
kap_rad , dlnkap_rad_dlnRho , dlnkap_rad_dlnT , &
705
705
kap , dlnkap_dlnRho , dlnkap_dlnT , ierr )
706
706
707
707
use condint, only: do_electron_conduction
708
708
type (Kap_General_Info), pointer :: rq
709
- real (dp), intent (in ) :: Rho, logRho, T , logT, zbar
709
+ real (dp), intent (in ) :: logRho, logT, zbar
710
710
real (dp), intent (inout ) :: kap_rad, dlnkap_rad_dlnRho, dlnkap_rad_dlnT
711
711
real (dp), intent (out ) :: kap, dlnkap_dlnRho, dlnkap_dlnT
712
712
integer , intent (out ) :: ierr ! 0 means AOK.
713
-
713
+
714
714
real (dp) :: kap_ec, dlnkap_ec_dlnRho, dlnkap_ec_dlnT
715
715
logical , parameter :: dbg = .false.
716
-
716
+
717
717
include ' formats'
718
-
718
+
719
719
ierr = 0
720
-
720
+
721
721
if (.not. rq% include_electron_conduction) then
722
722
kap = kap_rad
723
723
dlnkap_dlnRho = dlnkap_rad_dlnRho
@@ -744,12 +744,12 @@ subroutine combine_rad_with_conduction( &
744
744
if (dbg) write (* ,1 ) ' dlnkap_ec_dlnRho' , dlnkap_ec_dlnRho
745
745
if (dbg) write (* ,1 ) ' dlnkap_ec_dlnT' , dlnkap_ec_dlnT
746
746
if (dbg) write (* ,* )
747
-
747
+
748
748
kap = 1d0 / (1d0 / kap_rad + 1d0 / kap_ec)
749
749
if (dbg) write (* ,1 ) ' kap_rad' , kap_rad
750
750
if (dbg) write (* ,1 ) ' kap' , kap
751
751
if (dbg) write (* ,1 ) ' log10(kap)' , log10 (kap)
752
-
752
+
753
753
if (is_bad(kap)) then
754
754
ierr = - 1 ; return
755
755
write (* ,1 ) ' kap' , kap
@@ -769,9 +769,9 @@ subroutine combine_rad_with_conduction( &
769
769
write (* ,1 ) ' kap_ec' , kap_ec
770
770
call mesa_error(__FILE__,__LINE__,' combine_rad_with_conduction' )
771
771
end if
772
-
772
+
773
773
dlnkap_dlnT = (kap/ kap_rad) * dlnkap_rad_dlnT + (kap/ kap_ec) * dlnkap_ec_dlnT
774
-
774
+
775
775
if (is_bad(dlnkap_dlnT)) then
776
776
ierr = - 1 ; return
777
777
write (* ,1 ) ' dlnkap_dlnT' , dlnkap_dlnT
@@ -787,8 +787,8 @@ subroutine combine_rad_with_conduction( &
787
787
if (dbg) write (* ,1 ) ' dlnkap_dlnRho' , dlnkap_dlnRho
788
788
if (dbg) write (* ,1 ) ' dlnkap_dlnT' , dlnkap_dlnT
789
789
if (dbg) call mesa_error(__FILE__,__LINE__,' combine_rad_with_conduction' )
790
-
791
-
790
+
791
+
792
792
end subroutine combine_rad_with_conduction
793
793
794
794
@@ -810,7 +810,7 @@ subroutine Compton_Opacity(rq, &
810
810
real (dp), intent (in ) :: eta_in, d_eta_dlnRho, d_eta_dlnT
811
811
real (dp), intent (out ) :: kap, dlnkap_dlnRho, dlnkap_dlnT
812
812
integer , intent (out ) :: ierr
813
-
813
+
814
814
type (auto_diff_real_2var_order1) :: T, rho, free_e, eta, kap_auto
815
815
type (auto_diff_real_2var_order1) :: zeta, f1, f2, f3, alpha, tbr, theta, tkev, mfp
816
816
@@ -828,15 +828,15 @@ subroutine Compton_Opacity(rq, &
828
828
c22 = - 0.0067d0 , &
829
829
c31 = - 0.037d0 , &
830
830
c32 = 0.0031d0
831
-
831
+
832
832
include ' formats'
833
-
833
+
834
834
ierr = 0
835
835
836
836
! set up auto diff
837
837
! var1: Rho
838
838
! var2: T
839
-
839
+
840
840
Rho = Rho_in
841
841
Rho% d1val1 = 1d0
842
842
Rho% d1val2 = 0d0
@@ -871,9 +871,8 @@ subroutine Compton_Opacity(rq, &
871
871
kap = kap_auto% val
872
872
dlnkap_dlnRho = Rho% val * kap_auto% d1val1 / kap
873
873
dlnkap_dlnT = T% val * kap_auto% d1val2 / kap
874
-
874
+
875
875
end subroutine Compton_Opacity
876
876
877
877
878
878
end module kap_eval
879
-
0 commit comments