thermal_conductivity_nb3sn Function

public function thermal_conductivity_nb3sn(c_pt, T, B) result(thermal_conductivity) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: T
real(kind=dp), value :: B

Return Value real(kind=dp)


Source Code

  function thermal_conductivity_nb3sn(c_pt,T,B) result(thermal_conductivity) bind(C)
      type(c_ptr), value :: c_pt
      real(dp), value :: T,B
      real(dp) :: thermal_conductivity    
      real(dp) :: tmin,tmax,TT,T0,AA1,BB1,n1,m1,AA2,BB2,n2,m2  
      type(nb3sn_cfg_t), pointer :: nb3sn_ptr
      call c_f_pointer(c_pt,nb3sn_ptr)

      tmin=1.0d0
      tmax=1000.0d0
    
      TT=min(T,tmax)
      TT=max(TT,tmin)

      AA1=1.39049E+14_dp  ;   BB1=76.61272374_dp
      n1=3.663439606_dp   ;   m1=9.322084303_dp
      AA2=35.77281992_dp  ;   BB2=5.967307791_dp
      n2=2.766424235_dp   ;   m2=3.335767669_dp
      T0=20.92684715_dp
    
      if(TT <= T0) then
         thermal_conductivity = AA1*TT**n1/(BB1+TT)**m1
      else
         thermal_conductivity = AA2*TT**n2/(BB2+TT)**m2
      endif     

  end function thermal_conductivity_nb3sn