thermal_conductivity_copper Function

public function thermal_conductivity_copper(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_copper(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,BETA,BETAR,W1,W10,w0,p1,p2,p3,p4,p5,p6,p7,alpha,L0,BB      
      type(copper_cfg_t), pointer :: copper_ptr
      call c_f_pointer(c_pt,copper_ptr)

      Tmin=1.0_dp;    Tmax=3.00e2_dp
      TT=T
      TT=min(TT,Tmax)
      TT=max(TT,Tmin)

      BETA = 0.634_dp / copper_ptr%RRR
      BETAR = BETA / (0.0003_dp)
      p1 = 0.00000001754_dp
      p2 = 2.763_dp
      p3 = 1102_dp
      p4 = -0.165_dp
      p5 = 70_dp
      p6 = 1.756_dp
      p7 = 0.838_dp / BETAR**0.1661_dp
      alpha=5e-11_dp ;  L0=2.44e-8_dp

      W0 = BETA / TT
      W0 = W0+alpha*B/TT/L0
      W1 = p1 * TT**p2 / (1 + p1 * p3 * TT**(p2 + p4) * Exp(-(p5 / TT)**p6))
      W10 = p7 * W0 * W1 / (W0 + W1)
      thermal_conductivity = 1.0_dp / (W0 + W1 + W10)
  end function thermal_conductivity_copper