| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | c_pt | |||
| real(kind=dp), | value | :: | T | |||
| real(kind=dp), | value | :: | B |
function resistivity_copper(c_pt,T,B) result(resistivity) bind(C) type(c_ptr), value :: c_pt real(dp), value :: T,B real(dp) :: resistivity real(dp) :: Tmin,Tmax,TT,arg,rho1,A,aa,bb type(copper_cfg_t), pointer :: copper_ptr call c_f_pointer(c_pt,copper_ptr) Tmin = 0.1_dp ; Tmax = 1000.0_dp TT=T TT=max(TT,Tmin) TT=min(TT,Tmax) arg = (50.0_dp/TT)**6.428_dp rho1 = 1.171e-17_dp*TT**4.49_dp/(1.0_dp+4.5e-7_dp*TT**3.35_dp*exp(-arg)) bb=1.69e-8_dp resistivity = bb/copper_ptr%RRR + rho1 + 0.4531_dp*(bb*rho1/(copper_ptr%RRR*rho1+bb)) if(abs(B)<1.0e-15_dp) return A = log10(1.553e-8_dp*B/resistivity) aa = -2.662_dp + 0.3168_dp*A + 0.6229_dp*A**2 - 0.1839_dp*A**3 + 0.01827_dp*A**4 resistivity = resistivity*(1.0_dp+10.0_dp**aa) end function resistivity_copper