heat_capacity_copper Function

public function heat_capacity_copper(c_pt, T, B, TC, TCS, TC0) result(heat_capacity) bind(C)

Arguments

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

Return Value real(kind=dp)


Source Code

  function heat_capacity_copper(c_pt,T,B,TC,TCS,TC0) result(heat_capacity) bind(C)
      type(c_ptr), value :: c_pt
      real(dp), value :: T,B,TC,TCS,TC0
      real(dp) :: heat_capacity    
      real(dp) :: Tmin,Tmax,TT,Cp300,Cplow
      real(dp) :: beta,gamma

      type(copper_cfg_t), pointer :: copper_ptr
      call c_f_pointer(c_pt,copper_ptr)

      gamma=1.1e-2_dp
      beta=1.1e-3_dp
      cp300=385.49_dp
      Tmin=1.0_dp
      Tmax=3.00e2_dp
  
      TT=T
      TT=min(TT,Tmax)
      TT=max(TT,Tmin)
  
      Cplow=gamma*TT+beta*TT**3
      heat_capacity=1_dp/(1_dp/Cp300+1_dp/Cplow)
  end function heat_capacity_copper