allocate_rank2_int16 Subroutine

private subroutine allocate_rank2_int16(array, num_row, num_col)

Arguments

Type IntentOptional Attributes Name
integer(kind=int16), intent(inout), allocatable :: array(:,:)
integer(kind=int32), intent(in) :: num_row
integer(kind=int32), intent(in) :: num_col

Calls

proc~~allocate_rank2_int16~~CallsGraph proc~allocate_rank2_int16 allocate_rank2_int16 proc~error_message error_message proc~allocate_rank2_int16->proc~error_message log_error log_error proc~error_message->log_error

Called by

proc~~allocate_rank2_int16~~CalledByGraph proc~allocate_rank2_int16 allocate_rank2_int16 interface~allocate_array allocate_array interface~allocate_array->proc~allocate_rank2_int16 proc~apply_reordering type_domain%apply_reordering proc~apply_reordering->interface~allocate_array proc~build_csr_from_coo build_csr_from_coo proc~build_csr_from_coo->interface~allocate_array proc~coloring_dsatur coloring_dsatur proc~coloring_dsatur->interface~allocate_array proc~get_neighbors_impl type_crs_adjacency_element%get_neighbors_impl proc~coloring_dsatur->proc~get_neighbors_impl proc~update_saturation update_saturation proc~coloring_dsatur->proc~update_saturation proc~coloring_lfo coloring_lfo proc~coloring_lfo->interface~allocate_array proc~coloring_lfo->proc~get_neighbors_impl proc~coloring_welsh_powell coloring_welsh_powell proc~coloring_welsh_powell->interface~allocate_array proc~find_smallest_available_color find_smallest_available_color proc~coloring_welsh_powell->proc~find_smallest_available_color proc~get_welsh_powell_order get_welsh_powell_order proc~coloring_welsh_powell->proc~get_welsh_powell_order proc~construct_side_first construct_side_first proc~construct_side_first->interface~allocate_array proc~initialize_abst_mesh abst_mesh%initialize_abst_mesh proc~construct_side_first->proc~initialize_abst_mesh proc~construct_side_second construct_side_second proc~construct_side_second->interface~allocate_array proc~construct_side_second->proc~initialize_abst_mesh proc~construct_square_first construct_square_first proc~construct_square_first->interface~allocate_array proc~construct_square_first->proc~initialize_abst_mesh proc~construct_square_second construct_square_second proc~construct_square_second->interface~allocate_array proc~construct_square_second->proc~initialize_abst_mesh proc~construct_triangle_first construct_triangle_first proc~construct_triangle_first->interface~allocate_array proc~construct_triangle_first->proc~initialize_abst_mesh proc~construct_triangle_second construct_triangle_second proc~construct_triangle_second->interface~allocate_array proc~construct_triangle_second->proc~initialize_abst_mesh proc~construct_type_hydraulic_crs construct_type_hydraulic_crs proc~construct_type_hydraulic_crs->interface~allocate_array proc~get_csr type_node_adjacency%get_csr proc~construct_type_hydraulic_crs->proc~get_csr proc~initialize_type_crs type_crs%initialize_type_crs proc~construct_type_hydraulic_crs->proc~initialize_type_crs proc~construct_type_thermal_crs construct_type_thermal_crs proc~construct_type_thermal_crs->interface~allocate_array proc~construct_type_thermal_crs->proc~get_csr proc~construct_type_thermal_crs->proc~initialize_type_crs proc~create_coo_from_mesh create_coo_from_mesh proc~create_coo_from_mesh->interface~allocate_array proc~create_inverse_permutation create_inverse_permutation proc~create_inverse_permutation->interface~allocate_array proc~create_unique_coo create_unique_coo proc~create_unique_coo->interface~allocate_array interface~unique unique proc~create_unique_coo->interface~unique proc~execute_reordering_core execute_reordering_core proc~execute_reordering_core->interface~allocate_array proc~execute_bfs_ordering execute_bfs_ordering proc~execute_reordering_core->proc~execute_bfs_ordering proc~find_smallest_available_color->interface~allocate_array proc~find_smallest_available_color->proc~get_neighbors_impl proc~find_target_edges_by_group find_target_edges_by_group proc~find_target_edges_by_group->interface~allocate_array proc~get_coo type_node_adjacency%get_coo proc~get_coo->interface~allocate_array proc~get_csr->interface~allocate_array proc~get_neighbors_impl->interface~allocate_array proc~get_welsh_powell_order->interface~allocate_array proc~initialize_abst_mesh->interface~allocate_array proc~initialize_crs_adjacency type_crs_adjacency_element%initialize_crs_adjacency proc~initialize_crs_adjacency->interface~allocate_array proc~initialize_hybrid_from_mesh type_node_adjacency%initialize_hybrid_from_mesh proc~initialize_hybrid_from_mesh->interface~allocate_array proc~initialize_hybrid_from_mesh->proc~build_csr_from_coo proc~initialize_hybrid_from_mesh->proc~create_coo_from_mesh proc~initialize_hybrid_from_mesh->proc~create_unique_coo proc~initialize_output_overall_vtk initialize_output_overall_vtk proc~initialize_output_overall_vtk->interface~allocate_array proc~initialize_type_dp_3d type_dp_3d%initialize_type_dp_3d proc~initialize_output_overall_vtk->proc~initialize_type_dp_3d proc~initialize_output_overall_vtu initialize_output_overall_vtu proc~initialize_output_overall_vtu->interface~allocate_array proc~initialize_output_overall_vtu->proc~initialize_type_dp_3d proc~initialize_type_bc_thermal_adiabatic initialize_type_bc_thermal_adiabatic proc~initialize_type_bc_thermal_adiabatic->interface~allocate_array interface~find_target_edges_by_group find_target_edges_by_group proc~initialize_type_bc_thermal_adiabatic->interface~find_target_edges_by_group proc~initialize_type_bc_thermal_dirichlet initialize_type_bc_thermal_dirichlet proc~initialize_type_bc_thermal_dirichlet->interface~allocate_array proc~initialize_type_bc_thermal_dirichlet->interface~find_target_edges_by_group proc~initialize_type_coo type_coo%initialize_type_coo proc~initialize_type_coo->interface~allocate_array proc~initialize_type_crs->interface~allocate_array proc~initialize_type_dense type_dense%initialize_type_dense proc~initialize_type_dense->interface~allocate_array proc~initialize_type_dense_from_node type_dense%initialize_type_dense_from_node proc~initialize_type_dense_from_node->interface~allocate_array proc~initialize_type_dp_2d type_dp_2d%initialize_type_dp_2d proc~initialize_type_dp_2d->interface~allocate_array proc~initialize_type_dp_3d->interface~allocate_array proc~initialize_type_int_2d type_int_2d%initialize_type_int_2d proc~initialize_type_int_2d->interface~allocate_array proc~initialize_type_int_3d type_int_3d%initialize_type_int_3d proc~initialize_type_int_3d->interface~allocate_array proc~initialize_type_time type_time%initialize_type_time proc~initialize_type_time->interface~allocate_array proc~initialize_type_variable type_variable%initialize_type_variable proc~initialize_type_variable->interface~allocate_array proc~output_overall_vtk_fields output_overall_vtk_fields proc~output_overall_vtk_fields->interface~allocate_array proc~output_overall_vtu_fields output_overall_vtu_fields proc~output_overall_vtu_fields->interface~allocate_array proc~process_element_hydraulic_linear_1 process_element_hydraulic_linear_1 proc~process_element_hydraulic_linear_1->interface~allocate_array proc~process_element_hydraulic_linear_1->proc~initialize_type_dense_from_node proc~rcm_reorder_method rcm_reorder_method proc~rcm_reorder_method->interface~allocate_array proc~rcm_reorder_method->proc~execute_reordering_core proc~read_parameters_materials_thermal read_parameters_materials_thermal proc~read_parameters_materials_thermal->interface~allocate_array proc~sort_and_enqueue_neighbors sort_and_enqueue_neighbors proc~sort_and_enqueue_neighbors->interface~allocate_array proc~type_vtk_vtk_initialize type_vtk%type_vtk_vtk_initialize proc~type_vtk_vtk_initialize->interface~allocate_array proc~type_vtk_vtk_initialize->proc~initialize_type_dp_3d proc~type_vtk_vtu_initialize type_vtk%type_vtk_vtu_initialize proc~type_vtk_vtu_initialize->interface~allocate_array proc~type_vtk_vtu_initialize->proc~initialize_type_dp_3d proc~unique_int16 unique_int16 proc~unique_int16->interface~allocate_array proc~unique_int32 unique_int32 proc~unique_int32->interface~allocate_array proc~unique_int64 unique_int64 proc~unique_int64->interface~allocate_array proc~unique_int8 unique_int8 proc~unique_int8->interface~allocate_array proc~update_type_thermal_crs update_type_thermal_crs proc~update_type_thermal_crs->interface~allocate_array interface~coloring_dsatur type_coloring%coloring_dsatur interface~coloring_dsatur->proc~coloring_dsatur interface~coloring_lfo type_coloring%coloring_lfo interface~coloring_lfo->proc~coloring_lfo interface~coloring_welsh_powell type_coloring%coloring_welsh_powell interface~coloring_welsh_powell->proc~coloring_welsh_powell interface~construct_side_first construct_side_first interface~construct_side_first->proc~construct_side_first interface~construct_side_second construct_side_second interface~construct_side_second->proc~construct_side_second interface~construct_square_first construct_square_first interface~construct_square_first->proc~construct_square_first interface~construct_square_second construct_square_second interface~construct_square_second->proc~construct_square_second interface~construct_triangle_first construct_triangle_first interface~construct_triangle_first->proc~construct_triangle_first interface~construct_triangle_second construct_triangle_second interface~construct_triangle_second->proc~construct_triangle_second interface~construct_type_hydraulic_crs construct_type_hydraulic_crs interface~construct_type_hydraulic_crs->proc~construct_type_hydraulic_crs interface~construct_type_thermal_crs construct_type_thermal_crs interface~construct_type_thermal_crs->proc~construct_type_thermal_crs interface~create_inverse_permutation type_reordering%create_inverse_permutation interface~create_inverse_permutation->proc~create_inverse_permutation interface~find_target_edges_by_group->proc~find_target_edges_by_group interface~initialize_output_overall_vtk type_output_overall%initialize_output_overall_vtk interface~initialize_output_overall_vtk->proc~initialize_output_overall_vtk interface~initialize_output_overall_vtu type_output_overall%initialize_output_overall_vtu interface~initialize_output_overall_vtu->proc~initialize_output_overall_vtu interface~initialize_type_bc_thermal_adiabatic type_bc_thermal_adiabatic%initialize_type_bc_thermal_adiabatic interface~initialize_type_bc_thermal_adiabatic->proc~initialize_type_bc_thermal_adiabatic interface~initialize_type_bc_thermal_dirichlet type_bc_thermal_dirichlet%initialize_type_bc_thermal_dirichlet interface~initialize_type_bc_thermal_dirichlet->proc~initialize_type_bc_thermal_dirichlet interface~rcm_reorder_method type_reordering%rcm_reorder_method interface~rcm_reorder_method->proc~rcm_reorder_method interface~unique->proc~unique_int16 interface~unique->proc~unique_int32 interface~unique->proc~unique_int64 interface~unique->proc~unique_int8 interface~update_type_thermal_crs type_thermal_crs%update_type_thermal_crs interface~update_type_thermal_crs->proc~update_type_thermal_crs proc~cm_reorder_method cm_reorder_method proc~cm_reorder_method->proc~execute_reordering_core proc~execute_bfs_ordering->proc~sort_and_enqueue_neighbors proc~hydraulic_assemble_system_linear_1 hydraulic_assemble_system_linear_1 proc~hydraulic_assemble_system_linear_1->proc~process_element_hydraulic_linear_1 proc~hydraulic_assemble_system_linear_1_parallel hydraulic_assemble_system_linear_1_parallel proc~hydraulic_assemble_system_linear_1_parallel->proc~process_element_hydraulic_linear_1 proc~initialize_type_domain type_domain%initialize_type_domain proc~initialize_type_domain->proc~apply_reordering proc~initialize_type_domain->proc~initialize_hybrid_from_mesh proc~initialize_type_ftdss type_ftdss%initialize_type_ftdss proc~initialize_type_ftdss->proc~initialize_type_time proc~initialize_type_output_observation initialize_type_output_observation proc~initialize_type_output_observation->proc~initialize_type_dp_3d proc~inout_read_geometry inout_read_geometry proc~inout_read_geometry->proc~type_vtk_vtk_initialize proc~inout_read_geometry->proc~type_vtk_vtu_initialize proc~read_parameters_materials read_parameters_materials proc~read_parameters_materials->proc~read_parameters_materials_thermal proc~update_saturation->proc~get_neighbors_impl interface~cm_reorder_method type_reordering%cm_reorder_method interface~cm_reorder_method->proc~cm_reorder_method interface~initialize_type_output_observation type_output_observation%initialize_type_output_observation interface~initialize_type_output_observation->proc~initialize_type_output_observation interface~inout_read_geometry type_input%inout_read_geometry interface~inout_read_geometry->proc~inout_read_geometry interface~type_hydraulic_crs type_hydraulic_crs interface~type_hydraulic_crs->interface~construct_type_hydraulic_crs interface~type_side_first type_side_first interface~type_side_first->interface~construct_side_first interface~type_side_second type_side_second interface~type_side_second->interface~construct_side_second interface~type_square_first type_square_first interface~type_square_first->interface~construct_square_first interface~type_square_second type_square_second interface~type_square_second->interface~construct_square_second interface~type_thermal_crs type_thermal_crs interface~type_thermal_crs->interface~construct_type_thermal_crs interface~type_triangle_first type_triangle_first interface~type_triangle_first->interface~construct_triangle_first interface~type_triangle_second type_triangle_second interface~type_triangle_second->interface~construct_triangle_second proc~get_active_region_info type_vtk%get_active_region_info proc~get_active_region_info->interface~unique proc~initialize_input_type_output_overall initialize_input_type_output_overall proc~initialize_input_type_output_overall->interface~initialize_output_overall_vtk proc~initialize_input_type_output_overall->interface~initialize_output_overall_vtu proc~initialize_type_coloring type_coloring%initialize_type_coloring proc~initialize_type_coloring->interface~coloring_dsatur proc~initialize_type_coloring->interface~coloring_lfo proc~initialize_type_coloring->interface~coloring_welsh_powell proc~initialize_type_reordering type_reordering%initialize_type_reordering proc~initialize_type_reordering->interface~create_inverse_permutation proc~initialize_type_reordering->interface~rcm_reorder_method proc~initialize_type_reordering->interface~cm_reorder_method proc~inout_read_basic_parameters inout_read_basic_parameters proc~inout_read_basic_parameters->proc~read_parameters_materials interface~initialize_input_type_output_overall type_output_overall%initialize_input_type_output_overall interface~initialize_input_type_output_overall->proc~initialize_input_type_output_overall interface~inout_read_basic_parameters type_input%inout_read_basic_parameters interface~inout_read_basic_parameters->proc~inout_read_basic_parameters proc~initialize_type_controls type_controls%initialize_type_controls proc~initialize_type_controls->proc~get_active_region_info proc~initialize_type_input type_input%initialize_type_input proc~initialize_type_input->interface~inout_read_geometry proc~initialize_type_input->interface~inout_read_basic_parameters proc~initialize_type_material_manager type_material_manager%initialize_type_material_manager proc~initialize_type_material_manager->proc~get_active_region_info proc~initialize_type_output type_output%initialize_type_output proc~initialize_type_output->interface~initialize_type_output_observation proc~initialize_properties_manager type_properties_manager%initialize_properties_manager proc~initialize_properties_manager->proc~initialize_type_material_manager

Source Code

    subroutine allocate_rank2_int16(array, num_row, num_col)
        implicit none
        integer(int16), intent(inout), allocatable :: array(:, :)
        integer(int32), intent(in) :: num_row, num_col
        integer(int32) :: stat
        integer(int64) :: total_size

        if (allocated(array)) call error_message(951)

#ifdef USE_DEBUG
        if (num_row <= 0 .or. num_col <= 0) call error_message(952)

        total_size = int(num_row, kind=int64) * int(num_col, kind=int64)
        if (total_size > huge(0_int64) / 4) call error_message(953)
#endif

        allocate (array(num_row, num_col), stat=stat)

        if (stat /= 0) call error_message(955)

    end subroutine allocate_rank2_int16