Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
function critical_field_nb3sn(c_pt,T,St)result(critical_field)bind(C)type(c_ptr),value::c_ptreal(dp),value::T,Streal(dp)::critical_fieldreal(dp)::Tlim,ee,s,Tc0,tt,bb,Tlowtype(nb3sn_cfg_t),pointer::nb3sn_ptrcall c_f_pointer(c_pt,nb3sn_ptr)! L. Bottura, B. Bordini, Jc(B,T,e) Parameterization for the ITER! Nb3Sn Production, IEEE Trans. Appl. Sup., 19(2), 1477-1480, 2009 Tlow=0.0_dpTlim=max(T,Tlow)ee=St-nb3sn_ptr%emaxs=sNb3Sn(ee,nb3sn_ptr%Ca1,nb3sn_ptr%Ca2,nb3sn_ptr%e0a)Tc0=nb3sn_ptr%Tc0m*s**0.333333_dptt=Tlim/Tc0if(tt>0.0_dp.and.tt<1.0_dp)thenbb=s*(1.0_dp-tt**nb3sn_ptr%nu)else if(tt<=0.0_dp)thenbb=1.0_dpelse if(tt>1.0_dp)thenbb=0.0_dpendifcritical_field=nb3sn_ptr%Bc20m*bbend function critical_field_nb3sn