| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(input_t), | intent(in), | target | :: | cfg | ||
| real(kind=dp), | intent(out) | :: | density | |||
| type(c_ptr), | intent(out) | :: | c_pt |
subroutine material_nb3sn_init(cfg,density,c_pt) class(input_t), target, intent(in) :: cfg real(dp), intent(out) :: density type(c_ptr), intent(out) :: c_pt type(nb3sn_cfg_t), pointer :: nb3sn_ptr ! fortran pointer density=cfg%dbl('density',8040.0_dp) allocate(nb3sn_ptr) nb3sn_ptr%E0 = cfg%dbl('E0',1.0e-5_dp) nb3sn_ptr%nPow = cfg%int('nPow',5) nb3sn_ptr%str1 = cfg%dbl('str1',0.0060942_dp) nb3sn_ptr%str2 = cfg%dbl('str2',1.0777e-9_dp) nb3sn_ptr%Bc20m = cfg%dbl('Bc20m',29.39_dp) nb3sn_ptr%Tc0m = cfg%dbl('Tc0m',16.48_dp) nb3sn_ptr%nu = cfg%dbl('nu',1.52_dp) nb3sn_ptr%Ca1 = cfg%dbl('Ca1',45.74_dp) nb3sn_ptr%Ca2 = cfg%dbl('Ca2',4.431_dp) nb3sn_ptr%e0a = cfg%dbl('e0a',0.00232_dp) nb3sn_ptr%emax = cfg%dbl('emax',0.00_dp) nb3sn_ptr%C0 = cfg%dbl('C0',8.0771e10_dp) nb3sn_ptr%p = cfg%dbl('p',0.556_dp) nb3sn_ptr%q = cfg%dbl('q',1.698_dp) c_pt = c_loc(nb3sn_ptr) ! translates fortran pointer to C pointer end subroutine material_nb3sn_init