input_output Module


Uses

  • module~~input_output~~UsesGraph module~input_output input_output iso_c_binding iso_c_binding module~input_output->iso_c_binding iso_fortran_env iso_fortran_env module~input_output->iso_fortran_env module~inout_project_settings inout_project_settings module~input_output->module~inout_project_settings module~module_control module_control module~input_output->module~module_control module~module_core module_core module~input_output->module~module_core module~module_domain module_domain module~input_output->module~module_domain module~module_input module_input module~input_output->module~module_input module~module_matrix module_matrix module~input_output->module~module_matrix module~module_properties module_properties module~input_output->module~module_properties stdlib_strings stdlib_strings module~input_output->stdlib_strings vtk_fortran vtk_fortran module~input_output->vtk_fortran module~inout_project_settings->iso_fortran_env module~inout_project_settings->module~module_core module~control_iteration control_iteration module~module_control->module~control_iteration module~control_time control_time module~module_control->module~control_time core_check_nan core_check_nan module~module_core->core_check_nan module~core_allocate core_allocate module~module_core->module~core_allocate module~core_check_range core_check_range module~module_core->module~core_check_range module~core_deallocate core_deallocate module~module_core->module~core_deallocate module~core_error core_error module~module_core->module~core_error module~core_fortran_utils core_fortran_utils module~module_core->module~core_fortran_utils module~core_string_utils core_string_utils module~module_core->module~core_string_utils module~core_types core_types module~module_core->module~core_types module~core_unique core_unique module~module_core->module~core_unique module~core_vtk core_vtk module~module_core->module~core_vtk module~core_vtk_vtk_constants core_vtk_vtk_constants module~module_core->module~core_vtk_vtk_constants module~domain_adjacency domain_adjacency module~module_domain->module~domain_adjacency module~domain_element domain_element module~module_domain->module~domain_element module~domain_element_factory domain_element_factory module~module_domain->module~domain_element_factory module~domain_manager domain_manager module~module_domain->module~domain_manager module~domain_multicoloring domain_multicoloring module~module_domain->module~domain_multicoloring module~domain_reordering domain_reordering module~module_domain->module~domain_reordering module~domain_side domain_side module~module_domain->module~domain_side module~domain_side_factory domain_side_factory module~module_domain->module~domain_side_factory module~inout_input inout_input module~module_input->module~inout_input module~matrix_base matrix_base module~module_matrix->module~matrix_base module~matrix_coo matrix_coo module~module_matrix->module~matrix_coo module~matrix_crs matrix_crs module~module_matrix->module~matrix_crs module~matrix_dense matrix_dense module~module_matrix->module~matrix_dense module~properties_material_manager properties_material_manager module~module_properties->module~properties_material_manager module~properties_properties_manager properties_properties_manager module~module_properties->module~properties_properties_manager module~control_iteration->iso_fortran_env module~control_time->iso_fortran_env module~control_time->module~module_core module~control_time->module~module_input module~core_allocate->iso_fortran_env module~core_allocate->module~core_error module~core_check_range->iso_fortran_env module~core_deallocate->iso_fortran_env module~core_deallocate->module~core_error module~core_error->iso_fortran_env stdlib_logger stdlib_logger module~core_error->stdlib_logger module~core_fortran_utils_memory_stats_wrapper core_fortran_utils_memory_stats_wrapper module~core_fortran_utils->module~core_fortran_utils_memory_stats_wrapper module~core_fortran_utils_signal_flag_wrapper core_fortran_utils_signal_flag_wrapper module~core_fortran_utils->module~core_fortran_utils_signal_flag_wrapper module~core_fortran_utils_system_info_wrapper core_fortran_utils_system_info_wrapper module~core_fortran_utils->module~core_fortran_utils_system_info_wrapper module~core_string_utils->iso_fortran_env module~core_string_utils->module~core_allocate module~core_types_array core_types_array module~core_types->module~core_types_array module~core_types_gauss core_types_gauss module~core_types->module~core_types_gauss module~core_types_pointer core_types_pointer module~core_types->module~core_types_pointer module~core_types_variable core_types_variable module~core_types->module~core_types_variable module~core_types_vector core_types_vector module~core_types->module~core_types_vector module~core_unique->iso_fortran_env module~core_unique->module~core_allocate stdlib_sorting stdlib_sorting module~core_unique->stdlib_sorting module~core_vtk->iso_c_binding module~core_vtk->iso_fortran_env module~core_vtk->module~core_allocate module~core_vtk->module~core_deallocate module~core_vtk->module~core_unique module~core_vtk->module~core_vtk_vtk_constants module~core_vtk->module~core_types_array module~core_vtk_vtk_wrapper core_vtk_vtk_wrapper module~core_vtk->module~core_vtk_vtk_wrapper module~core_vtk_vtu_wrapper core_vtk_vtu_wrapper module~core_vtk->module~core_vtk_vtu_wrapper module~core_vtk->stdlib_sorting module~core_vtk_vtk_constants->iso_fortran_env module~domain_adjacency_adjacency_element domain_adjacency_adjacency_element module~domain_adjacency->module~domain_adjacency_adjacency_element module~domain_adjacency_adjacency_node domain_adjacency_adjacency_node module~domain_adjacency->module~domain_adjacency_adjacency_node module~domain_element->iso_fortran_env module~domain_element->module~module_core module~domain_element->module~module_input module~domain_element->stdlib_logger module~domain_element_factory->iso_fortran_env module~domain_element_factory->module~module_core module~domain_element_factory->module~module_input module~domain_element_factory->module~domain_element module~domain_manager->iso_fortran_env module~domain_manager->module~module_core module~domain_manager->module~module_input module~domain_manager->module~domain_adjacency module~domain_manager->module~domain_element module~domain_manager->module~domain_element_factory module~domain_manager->module~domain_multicoloring module~domain_manager->module~domain_reordering module~domain_manager->module~domain_side module~domain_manager->module~domain_side_factory module~domain_manager->stdlib_logger module~domain_multicoloring->iso_fortran_env module~domain_multicoloring->module~module_core module~domain_multicoloring->module~domain_adjacency_adjacency_element module~domain_multicoloring->stdlib_sorting module~domain_reordering->iso_fortran_env module~domain_reordering->module~module_core module~domain_reordering->module~domain_element module~domain_reordering->module~domain_adjacency_adjacency_node module~domain_reordering->stdlib_sorting module~domain_side->iso_fortran_env module~domain_side->module~module_core module~domain_side->module~module_input module~domain_side->stdlib_logger module~domain_side_factory->iso_fortran_env module~domain_side_factory->module~module_core module~domain_side_factory->module~module_input module~domain_side_factory->module~domain_side module~inout_input->iso_fortran_env module~inout_input->module~inout_project_settings module~inout_input->module~module_core module~inout_input->stdlib_strings json_module json_module module~inout_input->json_module module~inout_input->stdlib_logger module~matrix_base->iso_fortran_env module~matrix_base->module~module_domain module~matrix_coo->iso_fortran_env module~matrix_coo->module~module_core module~matrix_coo->module~module_domain module~matrix_coo->module~matrix_base module~matrix_crs->iso_fortran_env module~matrix_crs->module~module_core module~matrix_crs->module~module_domain module~matrix_crs->module~matrix_base module~matrix_crs->module~matrix_coo module~matrix_crs->stdlib_sorting module~matrix_dense->iso_fortran_env module~matrix_dense->module~module_core module~matrix_dense->module~module_domain module~matrix_dense->module~matrix_base module~properties_material_manager->iso_fortran_env module~properties_material_manager->module~module_input module~module_calculate module_calculate module~properties_material_manager->module~module_calculate module~properties_properties_manager->iso_fortran_env module~properties_properties_manager->module~module_core module~properties_properties_manager->module~module_input module~properties_properties_manager->module~properties_material_manager module~properties_properties_manager->module~module_calculate module~core_fortran_utils_memory_stats_wrapper->iso_fortran_env module~core_c_utils core_c_utils module~core_fortran_utils_memory_stats_wrapper->module~core_c_utils module~core_fortran_utils_signal_flag_wrapper->iso_c_binding module~core_fortran_utils_signal_flag_wrapper->iso_fortran_env module~core_fortran_utils_signal_flag_wrapper->stdlib_logger module~core_c_utils_signal_flag core_c_utils_signal_flag module~core_fortran_utils_signal_flag_wrapper->module~core_c_utils_signal_flag module~core_fortran_utils_system_info_wrapper->iso_c_binding module~core_fortran_utils_system_info_wrapper->iso_fortran_env module~core_fortran_utils_system_info_wrapper->stdlib_strings module~core_fortran_utils_system_info_wrapper->module~core_c_utils module~core_types_array->iso_fortran_env module~core_types_array->module~core_allocate module~core_types_array->module~core_deallocate module~core_types_gauss->iso_fortran_env module~core_types_pointer->iso_fortran_env module~core_types_variable->iso_fortran_env module~core_types_variable->module~core_allocate module~core_types_vector->iso_fortran_env module~core_vtk_vtk_wrapper->iso_c_binding module~core_vtk_vtu_wrapper->iso_c_binding module~domain_adjacency_adjacency_element->iso_fortran_env module~domain_adjacency_adjacency_element->module~module_core module~domain_adjacency_adjacency_element->module~domain_element module~domain_adjacency_adjacency_node->iso_fortran_env module~domain_adjacency_adjacency_node->module~module_core module~domain_adjacency_adjacency_node->stdlib_sorting calculate_blas calculate_blas module~module_calculate->calculate_blas calculate_wrf calculate_wrf module~module_calculate->calculate_wrf module~calculate_density calculate_density module~module_calculate->module~calculate_density module~calculate_gcc calculate_gcc module~module_calculate->module~calculate_gcc module~calculate_specific_heat calculate_specific_heat module~module_calculate->module~calculate_specific_heat module~calculate_thermal_conductivity calculate_thermal_conductivity module~module_calculate->module~calculate_thermal_conductivity module~calculate_volumetric_heat_capacity calculate_volumetric_heat_capacity module~module_calculate->module~calculate_volumetric_heat_capacity module~calculate_density->iso_fortran_env module~calculate_density->module~module_core module~calculate_density->module~module_input module~calculate_gcc->iso_fortran_env module~calculate_gcc->module~module_input module~calculate_specific_heat->iso_fortran_env module~calculate_specific_heat->module~module_core module~calculate_specific_heat->module~module_input module~calculate_thermal_conductivity->iso_fortran_env module~calculate_thermal_conductivity->module~module_core module~calculate_thermal_conductivity->module~module_input module~calculate_volumetric_heat_capacity->iso_fortran_env module~calculate_volumetric_heat_capacity->module~module_core module~calculate_volumetric_heat_capacity->module~inout_input module~calculate_volumetric_heat_capacity->module~calculate_density module~core_c_utils->iso_c_binding module~core_c_utils->module~core_c_utils_signal_flag module~core_c_utils_memory_stats core_c_utils_memory_stats module~core_c_utils->module~core_c_utils_memory_stats module~core_c_utils_system_info core_c_utils_system_info module~core_c_utils->module~core_c_utils_system_info module~core_c_utils_signal_flag->iso_c_binding module~core_c_utils_memory_stats->iso_c_binding module~core_c_utils_system_info->iso_c_binding

Used by


Interfaces

interface

  • private module subroutine initialize_input_type_output_overall(self, input, coordinate, domain, dir_output)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_overall), intent(inout) :: self
    type(type_input), intent(in) :: input
    type(type_dp_3d), intent(in) :: coordinate
    type(type_domain), intent(inout) :: domain
    character(len=*), intent(in) :: dir_output

interface

interface

interface

  • private module subroutine initialize_type_output_observation(self, input, coordinate, domain, dir_output, variable_name)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_observation), intent(inout) :: self
    type(type_input), intent(in) :: input
    type(type_dp_3d), intent(inout), pointer :: coordinate
    type(type_domain), intent(inout) :: domain
    character(len=*), intent(in) :: dir_output
    character(len=*), intent(in) :: variable_name

interface

  • private module subroutine output_system_log(self, time, Matrix, domain)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output), intent(inout) :: self
    type(type_time), intent(in) :: time
    type(type_crs), intent(in) :: Matrix
    type(type_domain), intent(inout) :: domain

interface

  • private module subroutine setup_directory(dir_path, file_extensions)

    Arguments

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

Abstract Interfaces

abstract interface

  • private subroutine abst_get_values(self, obs_values, domain, properties, nodal_temperature, nodal_porosity, nodal_pw)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_observation), intent(inout) :: self
    real(kind=real64), intent(out) :: obs_values(:)
    type(type_domain), intent(inout), optional :: domain
    type(type_proereties_manager), intent(inout), optional :: properties
    real(kind=real64), intent(in), optional :: nodal_temperature(:)
    real(kind=real64), intent(in), optional :: nodal_porosity(:)
    real(kind=real64), intent(in), optional :: nodal_pw(:)

abstract interface

  • private subroutine abst_output_overall_cell(self, file_name, variable_name, variable)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_overall), intent(inout) :: self
    character(len=*), intent(in) :: file_name
    character(len=*), intent(in) :: variable_name
    integer(kind=int32), intent(in) :: variable(:)

abstract interface

  • private subroutine abst_output_overall_fields(self, file_counts, domain, porosity, temperature, si, pressure, water_flux)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_overall), intent(inout) :: self
    integer(kind=int32), intent(in) :: file_counts
    type(type_domain), intent(in) :: domain
    real(kind=real64), intent(in), optional :: porosity(:)
    real(kind=real64), intent(in), optional :: temperature(:)
    real(kind=real64), intent(in), optional :: si(:)
    real(kind=real64), intent(in), optional :: pressure(:)
    type(type_dp_3d), intent(in), optional :: water_flux

abstract interface

  • private subroutine abst_write_line(self, unit, time, values)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_observation), intent(in) :: self
    integer(kind=int32), intent(in) :: unit
    real(kind=real64), intent(in) :: time
    real(kind=real64), intent(in) :: values(:)

abstract interface

  • private subroutine abst_write_obeservation_header(self, time_unit)

    Arguments

    Type IntentOptional Attributes Name
    class(type_output_observation), intent(inout) :: self
    character(len=*), intent(in) :: time_unit

Derived Types

type, public ::  type_output

Components

Type Visibility Attributes Name Initial
character(len=:), private, allocatable :: dir_output
character(len=:), private, allocatable :: dir_output_field
logical, private :: is_hydraulic
logical, private :: is_thermal
character(len=:), private, allocatable :: log_file_name
type(type_output_observation), private, allocatable :: observations(:)
type(type_output_overall), private :: overall

Type-Bound Procedures

procedure, public, pass(self) :: initialize => initialize_type_output
procedure, public, pass(self) :: output_coloring
procedure, public, pass(self) :: output_fields
procedure, public, pass(self) :: output_history
procedure, public, pass(self) :: output_system_log

type, private ::  type_output_observation

Components

Type Visibility Attributes Name Initial
type(type_dp_3d), public :: coordinate
logical, public :: do_output
type(holder_elements), public, allocatable :: elements(:)
real(kind=real64), public, allocatable :: eta(:)
character(len=:), public, allocatable :: file_name
procedure(abst_get_values), public, pointer, pass(self) :: get_values => null()
character(len=:), public, allocatable :: name
integer(kind=int32), public, allocatable :: node_ids(:)
integer(kind=int32), public :: num_observations
integer(kind=int32), public :: num_unit
character(len=:), public, allocatable :: type
character(len=:), public, allocatable :: unit
procedure(abst_write_obeservation_header), public, pointer, pass(self) :: write_header => null()
procedure(abst_write_line), public, pointer, pass(self) :: write_line => null()
real(kind=real64), public, allocatable :: xi(:)

Type-Bound Procedures

procedure, public, pass(self) :: initialize => initialize_type_output_observation

type, private ::  type_output_overall

Components

Type Visibility Attributes Name Initial
character(len=:), private, allocatable :: dir_output_field
character(len=:), private, allocatable :: file_extension
character(len=:), private, allocatable :: format_output
character(len=:), private, allocatable :: variable_names(:)
type(type_output_vtk), private :: vtk
procedure(abst_output_overall_cell), private, pointer, pass(self) :: write_cell => null()
procedure(abst_output_overall_fields), private, pointer, pass(self) :: write_fields => null()

Type-Bound Procedures

procedure, public, pass(self) :: initialize => initialize_input_type_output_overall
procedure, public, pass(self) :: initialize_vtk => initialize_output_overall_vtk
procedure, public, pass(self) :: initialize_vtu => initialize_output_overall_vtu

type, private ::  type_output_vtk

Components

Type Visibility Attributes Name Initial
integer(kind=int8), public, allocatable :: cell_types(:)
integer(kind=int32), public, allocatable :: connectivities(:)
type(type_dp_3d), public :: coordinate
integer(kind=int32), public :: num_cells
integer(kind=int32), public :: num_points
integer(kind=int32), public, allocatable :: offsets(:)

Subroutines

private subroutine initialize_type_output(self, input, domain, coordinate)

Arguments

Type IntentOptional Attributes Name
class(type_output), intent(inout) :: self
type(type_input), intent(in) :: input
class(type_domain), intent(inout), optional :: domain
type(type_dp_3d), intent(inout), pointer :: coordinate

private subroutine output_coloring(self, domain)

Arguments

Type IntentOptional Attributes Name
class(type_output), intent(inout) :: self
type(type_domain), intent(in) :: domain

private subroutine output_fields(self, file_counts, domain, porosity, temperature, si, pressure, water_flux)

Arguments

Type IntentOptional Attributes Name
class(type_output), intent(inout) :: self
integer(kind=int32), intent(in) :: file_counts
type(type_domain), intent(in) :: domain
real(kind=real64), intent(in), optional :: porosity(:)
real(kind=real64), intent(in), optional :: temperature(:)
real(kind=real64), intent(in), optional :: si(:)
real(kind=real64), intent(in), optional :: pressure(:)
type(type_dp_3d), intent(in), optional :: water_flux

private subroutine output_history(self, time, domain, propeties, porosity, temperature, pressure)

Arguments

Type IntentOptional Attributes Name
class(type_output) :: self
real(kind=real64), intent(in) :: time
type(type_domain), intent(inout), optional :: domain
type(type_proereties_manager), intent(inout), optional :: propeties
real(kind=real64), intent(in), optional :: porosity(:)
real(kind=real64), intent(in), optional :: temperature(:)
real(kind=real64), intent(in), optional :: pressure(:)