heat_capacity_nbti Function

public function heat_capacity_nbti(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_nbti(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) :: cpHigh, Bc20_loc, gama, Beta, CpLow  

      type(nbti_cfg_t), pointer :: nbti_ptr
      call c_f_pointer(c_pt,nbti_ptr)

      cpHigh=400.0_dp

      Bc20_loc=14.0_dp
      gama=0.145_dp
      Beta=0.0023_dp

      if(T<Tc) then
          CpLow=(Beta+3.0_dp*gama/Tc**2)*T**3+gama*B*T/Bc20_loc
      else
          CpLow=Beta*T**3+gama*T
      endif

      heat_capacity=1.0_dp/(1.0_dp/cpHigh+1.0_dp/CpLow)          
  end function heat_capacity_nbti