krn_global_tools_m Module


Uses

  • module~~krn_global_tools_m~~UsesGraph module~krn_global_tools_m krn_global_tools_m ieee_arithmetic ieee_arithmetic module~krn_global_tools_m->ieee_arithmetic iso_c_binding iso_c_binding module~krn_global_tools_m->iso_c_binding iso_fortran_env iso_fortran_env module~krn_global_tools_m->iso_fortran_env

Used by

  • module~~krn_global_tools_m~~UsedByGraph module~krn_global_tools_m krn_global_tools_m module~cmp_boundary_init_m cmp_boundary_init_m module~cmp_boundary_init_m->module~krn_global_tools_m module~krn_interface_m krn_interface_m module~cmp_boundary_init_m->module~krn_interface_m module~krn_simulation_m krn_simulation_m module~cmp_boundary_init_m->module~krn_simulation_m module~lib_he_thermo_m lib_He_thermo_m module~cmp_boundary_init_m->module~lib_he_thermo_m module~lib_input_m lib_input_m module~cmp_boundary_init_m->module~lib_input_m module~cmp_channel_calc_m cmp_channel_calc_m module~cmp_channel_calc_m->module~krn_global_tools_m module~cmp_channel_calc_m->module~krn_simulation_m module~cmp_channel_init_m cmp_channel_init_m module~cmp_channel_calc_m->module~cmp_channel_init_m module~cmp_channel_source_terms_m cmp_channel_source_terms_m module~cmp_channel_calc_m->module~cmp_channel_source_terms_m module~cmp_circulator_init_m cmp_circulator_init_m module~cmp_circulator_init_m->module~krn_global_tools_m module~cmp_circulator_init_m->module~krn_interface_m module~cmp_circulator_init_m->module~krn_simulation_m module~lib_ext_math_m lib_ext_math_m module~cmp_circulator_init_m->module~lib_ext_math_m module~cmp_circulator_init_m->module~lib_he_thermo_m module~cmp_circulator_init_m->module~lib_input_m module~cmp_junction_init_m cmp_junction_init_m module~cmp_junction_init_m->module~krn_global_tools_m module~cmp_junction_init_m->module~krn_interface_m module~cmp_junction_init_m->module~krn_simulation_m module~cmp_junction_init_m->module~lib_ext_math_m module~cmp_junction_init_m->module~lib_he_thermo_m module~cmp_junction_init_m->module~lib_input_m module~krn_interface_m->module~krn_global_tools_m module~krn_simulation_m->module~krn_global_tools_m module~lib_hdf_write_m lib_hdf_write_m module~krn_simulation_m->module~lib_hdf_write_m module~krn_simulation_m->module~lib_input_m module~lib_ext_math_m->module~krn_global_tools_m module~lib_friction_correlations_m lib_friction_correlations_m module~lib_friction_correlations_m->module~krn_global_tools_m module~lib_friction_correlations_m->module~lib_input_m module~lib_hdf_write_m->module~krn_global_tools_m module~lib_hdf_write_m->module~lib_input_m module~lib_he_thermo_m->module~krn_global_tools_m module~lib_he_thermo_m->module~krn_simulation_m module~lib_he_thermo_m->module~lib_ext_math_m module~lib_input_m->module~krn_global_tools_m module~lib_material_insulation_m lib_material_insulation_m module~lib_material_insulation_m->module~krn_global_tools_m module~lib_material_insulation_m->module~lib_input_m module~lib_material_metal_m lib_material_metal_m module~lib_material_metal_m->module~krn_global_tools_m module~lib_material_metal_m->module~lib_input_m module~lib_material_nb3sn_m lib_material_nb3sn_m module~lib_material_nb3sn_m->module~krn_global_tools_m module~lib_material_nb3sn_m->module~lib_input_m module~lib_material_nbti_m lib_material_nbti_m module~lib_material_nbti_m->module~krn_global_tools_m module~lib_material_nbti_m->module~lib_input_m module~lib_nusselt_correlations_m lib_nusselt_correlations_m module~lib_nusselt_correlations_m->module~krn_global_tools_m module~lib_nusselt_correlations_m->module~lib_input_m program~reims_p reims_p program~reims_p->module~krn_global_tools_m program~reims_p->module~cmp_channel_calc_m program~reims_p->module~krn_simulation_m program~reims_p->module~lib_input_m module~cmp_boundary_calc_m cmp_boundary_calc_m program~reims_p->module~cmp_boundary_calc_m module~cmp_channel_flux_m cmp_channel_flux_m program~reims_p->module~cmp_channel_flux_m module~cmp_circulator_calc_m cmp_circulator_calc_m program~reims_p->module~cmp_circulator_calc_m module~cmp_ffsrclink_calc_m cmp_FFsrcLink_calc_m program~reims_p->module~cmp_ffsrclink_calc_m module~cmp_junction_calc_m cmp_junction_calc_m program~reims_p->module~cmp_junction_calc_m module~cmp_mesh2d_calc_m cmp_mesh2D_calc_m program~reims_p->module~cmp_mesh2d_calc_m module~cmp_solid_calc_m cmp_solid_calc_m program~reims_p->module~cmp_solid_calc_m module~cmp_ssfluxlink_m cmp_SSfluxLink_m program~reims_p->module~cmp_ssfluxlink_m module~krn_linear_system_m krn_linear_system_m program~reims_p->module~krn_linear_system_m module~lib_material_m lib_material_m program~reims_p->module~lib_material_m module~cmp_fslink_calc_m cmp_FSlink_calc_m program~reims_p->module~cmp_fslink_calc_m module~cmp_mesh2d_flux_m cmp_mesh2D_flux_m program~reims_p->module~cmp_mesh2d_flux_m module~cmp_mesh2d_hdf5_write_m cmp_mesh2D_hdf5_write_m program~reims_p->module~cmp_mesh2d_hdf5_write_m module~cmp_solid_flux_m cmp_solid_flux_m program~reims_p->module~cmp_solid_flux_m module~cmp_sssrclink_calc_m cmp_SSsrcLink_calc_m program~reims_p->module~cmp_sssrclink_calc_m module~cmp_strand_calc_m cmp_strand_calc_m program~reims_p->module~cmp_strand_calc_m module~cmp_strand_flux_m cmp_strand_flux_m program~reims_p->module~cmp_strand_flux_m module~cmp_boundary_calc_m->module~cmp_boundary_init_m module~cmp_boundary_calc_m->module~lib_ext_math_m module~cmp_boundary_calc_m->module~lib_he_thermo_m module~cmp_channel_flux_m->module~lib_he_thermo_m module~cmp_channel_flux_m->module~cmp_channel_init_m module~cmp_channel_init_m->module~krn_interface_m module~cmp_channel_init_m->module~krn_simulation_m module~cmp_channel_init_m->module~lib_friction_correlations_m module~cmp_channel_init_m->module~lib_hdf_write_m module~cmp_channel_init_m->module~lib_he_thermo_m module~cmp_channel_init_m->module~lib_input_m module~cmp_channel_init_m->module~lib_nusselt_correlations_m module~cmp_channel_source_terms_m->module~lib_he_thermo_m module~cmp_channel_source_terms_m->module~cmp_channel_init_m module~cmp_circulator_calc_m->module~cmp_circulator_init_m module~cmp_ffsrclink_calc_m->module~lib_he_thermo_m module~cmp_ffsrclink_init_m cmp_FFsrcLink_init_m module~cmp_ffsrclink_calc_m->module~cmp_ffsrclink_init_m module~cmp_ffsrclink_init_m->module~krn_interface_m module~cmp_ffsrclink_init_m->module~krn_simulation_m module~cmp_ffsrclink_init_m->module~lib_input_m module~cmp_ffsrclink_init_m->module~lib_nusselt_correlations_m module~cmp_fslink_init_m cmp_FSlink_init_m module~cmp_fslink_init_m->module~krn_interface_m module~cmp_fslink_init_m->module~lib_input_m module~cmp_fslink_init_m->module~lib_nusselt_correlations_m module~cmp_fslink_init_m->module~lib_material_m module~cmp_junction_calc_m->module~cmp_junction_init_m module~cmp_junction_calc_m->module~lib_ext_math_m module~cmp_junction_calc_m->module~lib_he_thermo_m module~cmp_mesh2d_calc_m->module~krn_simulation_m module~cmp_mesh2d_init_m cmp_mesh2D_init_m module~cmp_mesh2d_calc_m->module~cmp_mesh2d_init_m module~cmp_mesh2d_init_m->module~krn_interface_m module~cmp_mesh2d_init_m->module~krn_simulation_m module~cmp_mesh2d_init_m->module~lib_input_m module~cmp_mesh2d_init_m->module~lib_material_m module~cmp_solid_calc_m->module~krn_simulation_m module~cmp_solid_init_m cmp_solid_init_m module~cmp_solid_calc_m->module~cmp_solid_init_m module~cmp_solid_init_m->module~krn_interface_m module~cmp_solid_init_m->module~krn_simulation_m module~cmp_solid_init_m->module~lib_hdf_write_m module~cmp_solid_init_m->module~lib_input_m module~cmp_solid_init_m->module~lib_material_m module~cmp_ssfluxlink_m->module~krn_interface_m module~cmp_ssfluxlink_m->module~lib_input_m module~cmp_sssrclink_init_m cmp_SSsrcLink_init_m module~cmp_sssrclink_init_m->module~krn_interface_m module~cmp_sssrclink_init_m->module~lib_input_m module~cmp_sssrclink_init_m->module~lib_material_m module~cmp_strand_init_m cmp_strand_init_m module~cmp_strand_init_m->module~krn_interface_m module~cmp_strand_init_m->module~krn_simulation_m module~cmp_strand_init_m->module~lib_hdf_write_m module~cmp_strand_init_m->module~lib_input_m module~cmp_strand_init_m->module~lib_material_m module~krn_linear_system_m->module~krn_interface_m module~krn_linear_system_m->module~krn_simulation_m module~lib_material_m->module~lib_input_m module~lib_material_m->module~lib_material_insulation_m module~lib_material_m->module~lib_material_metal_m module~lib_material_m->module~lib_material_nb3sn_m module~lib_material_m->module~lib_material_nbti_m module~cmp_fslink_calc_m->module~cmp_fslink_init_m module~cmp_mesh2d_flux_m->module~cmp_mesh2d_init_m module~cmp_mesh2d_hdf5_write_m->module~cmp_mesh2d_init_m module~cmp_solid_flux_m->module~cmp_solid_init_m module~cmp_sssrclink_calc_m->module~cmp_sssrclink_init_m module~cmp_strand_calc_m->module~cmp_strand_init_m module~cmp_strand_source_terms_m cmp_strand_source_terms_m module~cmp_strand_calc_m->module~cmp_strand_source_terms_m module~cmp_strand_flux_m->module~cmp_strand_init_m module~cmp_strand_source_terms_m->module~cmp_strand_init_m

Variables

Type Visibility Attributes Name Initial
logical, public :: R_Correction

mechanical equilibrium correction by adding new state variable

character(len=:), public, allocatable :: saved_cwd

current working directory saved

integer, public, parameter :: Nb_VarP = 7

Number of primitive variables for Helium model

integer, public, parameter :: Nb_VarC = 4

Number of conservative variables for Helium model

real(kind=dp), public, parameter :: Pi_value = 3.14159265_dp
real(kind=dp), public, parameter :: id_4x4(4,4) = reshape([1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], [4, 4])
integer, public, parameter :: idx_4x4_col(16) = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
integer, public, parameter :: idx_4x4_row(16) = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4]
integer, public, parameter :: idx_2x1_col(2) = [1, 1]
integer, public, parameter :: idx_2x1_row(2) = [3, 4]
integer, public, parameter :: idx_1x4_col(4) = [1, 2, 3, 4]
integer, public, parameter :: idx_1x4_row(4) = [1, 1, 1, 1]
integer, public, parameter :: idx_2x4_col(8) = [1, 2, 3, 4, 1, 2, 3, 4]
integer, public, parameter :: idx_2x4_row(8) = [3, 3, 3, 3, 4, 4, 4, 4]
type(c_ptr), public, allocatable :: lib_handles(:)

Interfaces

public interface to_str

  • public pure function str_from_int(value_in) result(str_out)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: value_in

    Return Value character(len=:), allocatable

  • public pure function str_from_real(value_in) result(str_out)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: value_in

    Return Value character(len=:), allocatable

public interface is_nan

  • public function is_nan_int(val_in) result(val_out)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: val_in

    Return Value logical

  • public function is_nan_dbl(val_in) result(val_out)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: val_in

    Return Value logical

interface

  • public function LoadLibraryA(lpLibFileName) bind(C, name="LoadLibraryA")

    Arguments

    Type IntentOptional Attributes Name
    character(kind=c_char, len=1), dimension(*) :: lpLibFileName

    Return Value type(c_ptr)

interface

  • public function GetProcAddress(hModule, lpProcName) bind(C, name="GetProcAddress")

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: hModule
    character(kind=c_char, len=1), dimension(*) :: lpProcName

    Return Value type(c_funptr)


Abstract Interfaces

abstract interface

  • public function itf_1var(c_pt, var1) result(outvar) bind(C))

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: c_pt
    real(kind=c_double), value :: var1

    Return Value real(kind=c_double)

abstract interface

  • public function itf_2var(c_pt, var1, var2) result(outvar) bind(C))

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: c_pt
    real(kind=c_double), value :: var1
    real(kind=c_double), value :: var2

    Return Value real(kind=c_double)

abstract interface

  • public function itf_4var(c_pt, var1, var2, var3, var4) result(outvar) bind(C))

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: c_pt
    real(kind=c_double), value :: var1
    real(kind=c_double), value :: var2
    real(kind=c_double), value :: var3
    real(kind=c_double), value :: var4

    Return Value real(kind=c_double)

abstract interface

  • public function itf_5var(c_pt, var1, var2, var3, var4, var5) result(outvar) bind(C))

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: c_pt
    real(kind=c_double), value :: var1
    real(kind=c_double), value :: var2
    real(kind=c_double), value :: var3
    real(kind=c_double), value :: var4
    real(kind=c_double), value :: var5

    Return Value real(kind=c_double)

abstract interface

  • public function itf_8var(c_pt, var1, var2, var3, var4, var5, var6, var7, var8) result(outvar) bind(C))

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: c_pt
    real(kind=c_double), value :: var1
    real(kind=c_double), value :: var2
    real(kind=c_double), value :: var3
    real(kind=c_double), value :: var4
    real(kind=c_double), value :: var5
    real(kind=c_double), value :: var6
    real(kind=c_double), value :: var7
    real(kind=c_double), value :: var8

    Return Value real(kind=c_double)


Derived Types

type, public ::  timer_point_t

Components

Type Visibility Attributes Name Initial
character(len=:), public, pointer :: description
integer, public :: count = 0
integer, public :: tic = 0
integer, public :: sum = 0

type, public ::  timer_t

Components

Type Visibility Attributes Name Initial
integer, public, len :: sz
type(timer_point_t), public :: list(sz)

Type-Bound Procedures

procedure, public :: set => timer_set
procedure, public :: print => timer_print

type, public ::  str_ptr

Components

Type Visibility Attributes Name Initial
character(len=:), public, pointer :: p => null()

Functions

public pure function str_from_int(value_in) result(str_out)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: value_in

Return Value character(len=:), allocatable

public pure function str_from_real(value_in) result(str_out)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: value_in

Return Value character(len=:), allocatable

public elemental function to_dbl(str_in) result(val_out)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str_in

Return Value real(kind=dp)

public elemental function to_int(str_in) result(val_out)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str_in

Return Value integer

public function is_nan_dbl(val_in) result(val_out)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: val_in

Return Value logical

public function is_nan_int(val_in) result(val_out)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: val_in

Return Value logical

public function reims_config_file() result(path)

Arguments

None

Return Value character(len=:), allocatable

public function convert2int_port(str) result(convert)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str

Return Value integer

public function count_chars(str, char)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: str
character(len=1), intent(in) :: char

Return Value integer


Subroutines

public subroutine timer_set(me, to, from, description)

Arguments

Type IntentOptional Attributes Name
class(timer_t(*)), intent(inout) :: me
integer, intent(in) :: to
integer, intent(in), optional :: from
character(len=*), intent(in), optional, target :: description

to be printed on summary

public subroutine timer_print(me)

Arguments

Type IntentOptional Attributes Name
class(timer_t(*)), intent(inout) :: me

public subroutine check_status(status, error_message)

If status /= 0 abort printing error_message and status

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: status
character(len=*), intent(in) :: error_message

public subroutine check_if_conversion_required(list, name, conversion_required, max_value)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: list
character(len=*), intent(in) :: name
logical, intent(out) :: conversion_required
integer, intent(out) :: max_value

public subroutine array_conv(list, name, conv)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: list
character(len=*), intent(in) :: name
integer, intent(out) :: conv(:)