material_nb3sn_init Subroutine

public subroutine material_nb3sn_init(cfg, density, c_pt)

Arguments

Type IntentOptional Attributes Name
class(input_t), intent(in), target :: cfg
real(kind=dp), intent(out) :: density
type(c_ptr), intent(out) :: c_pt

Calls

proc~~material_nb3sn_init~~CallsGraph proc~material_nb3sn_init material_nb3sn_init proc~input_dbl input_t%input_dbl proc~material_nb3sn_init->proc~input_dbl proc~continue_if continue_if proc~input_dbl->proc~continue_if proc~get0d_hdf5 get0d_hdf5 proc~input_dbl->proc~get0d_hdf5 proc~input_has_key input_t%input_has_key proc~input_dbl->proc~input_has_key proc~input_node input_t%input_node proc~input_dbl->proc~input_node to_real to_real proc~input_dbl->to_real proc~get0d_hdf5->proc~input_has_key h5close_f h5close_f proc~get0d_hdf5->h5close_f h5dclose_f h5dclose_f proc~get0d_hdf5->h5dclose_f h5dopen_f h5dopen_f proc~get0d_hdf5->h5dopen_f h5dread_f h5dread_f proc~get0d_hdf5->h5dread_f h5fclose_f h5fclose_f proc~get0d_hdf5->h5fclose_f h5fopen_f h5fopen_f proc~get0d_hdf5->h5fopen_f h5ltget_dataset_info_f h5ltget_dataset_info_f proc~get0d_hdf5->h5ltget_dataset_info_f h5open_f h5open_f proc~get0d_hdf5->h5open_f proc~input_str input_t%input_str proc~get0d_hdf5->proc~input_str get get proc~input_has_key->get proc~select_dict select_dict proc~input_has_key->proc~select_dict proc~input_node->get proc~dictionary_traverse dictionary_traverse proc~input_node->proc~dictionary_traverse proc~input_node->proc~select_dict proc~dictionary_traverse->proc~dictionary_traverse get_dictionary get_dictionary proc~dictionary_traverse->get_dictionary proc~abort_if abort_if proc~dictionary_traverse->proc~abort_if proc~input_str->proc~input_has_key proc~input_str->proc~input_node proc~select_scalar select_scalar proc~input_str->proc~select_scalar

Called by

proc~~material_nb3sn_init~~CalledByGraph proc~material_nb3sn_init material_nb3sn_init proc~set_material set_material proc~set_material->proc~material_nb3sn_init proc~load_materials load_materials proc~load_materials->proc~set_material program~reims_p reims_p program~reims_p->proc~load_materials

Source Code

  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