heat_capacity_glass_epoxy Function

public function heat_capacity_glass_epoxy(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_glass_epoxy(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,u,w,Rb,Rh
      real(dp), parameter :: T1 = 20.0_dp, T2 = 30.0_dp
      type(glass_epoxy_cfg_t), pointer :: glass_epoxy_ptr
      call c_f_pointer(c_pt,glass_epoxy_ptr)

      Tmin = 1.0_dp
      Tmax = 300.0_dp
      TT=min(T,Tmax)
      TT=max(TT,Tmin)

      u  = (TT - T1) / (T2 - T1)
      u  = max(0.0_dp, min(1.0_dp, u))
      w  = u**3 * (6.0_dp*u**2 - 15.0_dp*u + 10.0_dp)
      Rb = -0.00630328_dp*TT**3 + 0.440052_dp*TT**2 - 1.719_dp*TT + 1.92937_dp
      Rh = 5.58686404_dp * TT**0.98980198_dp
      heat_capacity = (1.0_dp - w)*Rb + w*Rh
  end function heat_capacity_glass_epoxy