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_temperature_nb3sn(c_pt,B,St)result(critical_temperature)bind(C)type(c_ptr),value::c_ptreal(dp),value::B,Streal(dp)::critical_temperaturereal(dp)::Blim,ee,s,Bc20,bb0,tt,Tc,Blowtype(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 Blow=1.0e-3_dpBlim=max(abs(B),Blow)ee=St-nb3sn_ptr%emaxs=sNb3Sn(ee,nb3sn_ptr%Ca1,nb3sn_ptr%Ca2,nb3sn_ptr%e0a)Bc20=nb3sn_ptr%Bc20m*sbb0=Blim/Bc20if(bb0>0.0_dp.and.bb0<1.0_dp)thentt=s**0.3333333_dp*(1.0_dp-bb0)**(1.0_dp/nb3sn_ptr%nu)else if(abs(bb0)<=1.0e-12_dp)thentt=1.0_dpelse if(bb0>1.0_dp)thentt=0.0_dpendifTc=nb3sn_ptr%Tc0m*ttcritical_temperature=Tcend function critical_temperature_nb3sn