| Type | Intent | Optional | 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 |
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