| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | c_pt | |||
| real(kind=dp), | value | :: | T | |||
| real(kind=dp), | value | :: | St |
function critical_field_nbti(c_pt,T,St) result(critical_field) bind(C) type(c_ptr), value :: c_pt real(dp), value :: T,St real(dp) :: critical_field real(dp) :: Tlim,tt,bb,Tlow type(nbti_cfg_t), pointer :: nbti_ptr call c_f_pointer(c_pt,nbti_ptr) ! M.S.Lubell, Scaling formulas for critical current and critical field ! for commercial NbTi, IEEE Trans. Mag. ,19, (1983). Tlow=0.0_dp Tlim=max(T,Tlow) tt = Tlim/nbti_ptr%Tc0_p if(tt>0.0_dp .and. tt<1.0_dp) then bb = 1.0_dp-tt**nbti_ptr%nu else if(tt<=0.0_dp) then bb = 1.0_dp else if(tt>1.0_dp) then bb = 0.0_dp endif critical_field = nbti_ptr%Bc20 * bb end function critical_field_nbti