array_functions_interface | array_functions_interface.f90 | Functionally pure array utilities
Because the Fortran standard requires that user-defined operator dummy arguments have the INTENT(IN)
attribute, exposing only the operator and not the function names communicates more information in the
public interface and in code using this interface. |
array_functions_implementation | array_functions_implementation.f90 | |
assertions_interface | assertions_interface.F90 | Utility for runtime checking of logical assertions. Read more… |
assertions_implementation | assertions_implementation.F90 | |
block_metadata_interface | block_metadata_interface.F90 | encapsulate metadata describing structured-grid blocks Read more… |
block_metadata_implementation | block_metadata_implementation.f90 | procedure implementations for encapsulatingd metadata for blocks in block-structured grids Read more… |
cartesian_grid_interface | cartesian_grid_interface.f90 | |
cartesian_grid_implementation | cartesian_grid_implementation.f90 | |
class_bc | class_bc.f90 | Emulate runtime polymorphism for boundary condition classes. |
class_bc_procedures | class_bc_procedures.f90 | |
class_bc_math | class_bc_math.f90 | |
class_bc_math_procedures | class_bc_math_procedures.f90 | |
class_bc_wall | class_bc_wall.f90 | WALL boundary condition class. Read more… |
class_bc_wall_procedures | class_bc_wall_procedures.f90 | |
class_cell | class_cell.F90 | Class
Constructor/destructor
Parallel ops.
Named constants |
class_cell_procedures | class_cell_procedures.F90 | |
class_connectivity | class_connectivity.f90 | **it Connectivity/connectivity
NAME
connectivity Read more… |
class_connectivity_procedures | class_connectivity_procedures.f90 | **m Connectivity/alloc_conn Read more… |
class_cylinder | class_cylinder.f90 | |
class_cylinder_procedures | class_cylinder_procedures.f90 | $ function f(unknowns,vertices)
$
$ use class_vector
$
$ real(kind(1.0d0)) :: f
$ real(kind(1.0d0)),intent(in) :: unknowns(6)
$ type(vertex) ,intent(in) :: vertices(:)
$
$ ! Local variables
$ type(vector) :: center
$ type(vector) :: axis
$ real(kind(1.0d0)) :: radius,alpha,beta
$ real(kind(1.0d0)) :: ax,ay,az
$
$ center = vector_(unknowns(1),unknowns(2),unknowns(3))
$ alpha = unknowns(4)
$ beta = unknowns(5)
$ radius = unknowns(6)
$
$ ax = sin(beta)
$ ay = -sin(alpha)cos(beta)
$ az = cos(alpha)cos(beta)
$
$ axis = vector_(ax,ay,az)
$
$ f = calc_error(center,axis,radius,vertices)
$
$ end function f |
class_dimensions | class_dimensions.f90 | |
class_dimensions_procedures | class_dimensions_procedures.f90 | |
class_discretization | class_discretization.f90 | |
class_discretization_procedures | class_discretization_procedures.f90 | |
class_exodus | class_exodus.f90 | An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
author: Ian Porter, NRC
date: 01/23/2019 Read more… |
class_exodus_procedures | class_exodus_procedures.f90 | date 12/12/2019 Read more… |
class_face | class_face.F90 | |
class_face_procedures | class_face_procedures.F90 | |
class_field | class_field.f90 | Class
Named constants |
class_field_procedures | class_field_procedures.f90 | |
class_iterating | class_iterating.f90 | |
class_iterating_procedures | class_iterating_procedures.f90 | |
class_keytable | class_keytable.f90 | |
class_keytable_procedures | class_keytable_procedures.f90 | |
class_least_squares | class_least_squares.f90 | Class
Procedure
Procedure |
class_least_squares_procedures | class_least_squares_procedures.f90 | |
class_material | class_material.f90 | Describe material state and specify state equations |
class_material_procedures | class_material_procedures.f90 | |
class_mesh | class_mesh.F90 | Define and manipulate data describing the discretization of space into connected finite-volume cells and surfaces |
class_mesh_procedures | class_mesh_procedures.F90 | |
class_motion | class_motion.f90 | |
class_motion_procedures | class_motion_procedures.f90 | |
class_output | class_output.f90 | An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
class_output_procedures | class_output_procedures.F90 | |
class_pde | class_pde.f90 | Class |
class_pde_procedures | class_pde_procedures.f90 | |
class_plane | class_plane.f90 | |
class_plane_procedures | class_plane_procedures.f90 | |
class_psblas | class_psblas.f90 | |
class_psblas_procedures | class_psblas_procedures.f90 | |
class_scalar_field | class_scalar_field.f90 | Define and manipulate scalar-field values associated with a field-parent mesh
Class |
class_scalar_field_procedures | class_scalar_field_procedures.f90 | |
class_scalar_pde | class_scalar_pde.f90 | ----- Generic Interfaces ----- |
class_scalar_pde_procedures | class_scalar_pde_procedures.f90 | |
class_scalar_source | class_scalar_source.f90 | Define, set, and get scalar-valued source term coefficients for partial differential equations |
class_scalar_source_procedures | class_scalar_source_procedures.f90 | |
class_stopwatch | class_stopwatch.f90 | |
class_stopwatch_procedures | class_stopwatch_procedures.f90 | |
class_surface | class_surface.f90 | |
class_surface_procedures | class_surface_procedures.f90 | returns true if the surface has been set up already |
class_vector | class_vector.f90 | |
class_vector_procedures | class_vector_procedures.f90 | |
class_vector_field | class_vector_field.f90 | Class |
class_vector_field_procedures | class_vector_field_procedures.f90 | |
class_vector_pde | class_vector_pde.f90 | |
class_vector_pde_procedures | class_vector_pde_procedures.f90 | |
class_vertex | class_vertex.f90 | |
class_vertex_procedures | class_vertex_procedures.f90 | |
class_vtk_output | class_vtk_output.f90 | An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
author: Ian Porter, NRC
date: 01/23/2019 Read more… |
class_vtk_output_procedures | class_vtk_output_procedures.f90 | This submodule implements the routines necessary to interface morfeus w/ vtkmofo Read more… |
co_object_interface | co_object_interface.f90 | |
co_object_implementation | co_object_implementation.f90 | |
curvilinear_grid_interface | curvilinear_grid_interface.f90 | |
cylinder_2d_interface | cylinder_2D_interface.F90 | Encapsulate a 2D cylinder geometry and grid-verification method |
cylinder_2d_implementation | cylinder_2D_implementation.F90 | |
cylindrical_grid_interface | cylindrical_grid_interface.f90 | |
cylindrical_grid_implementation | cylindrical_grid_implementation.f90 | |
differentiable_field_interface | differentiable_field_interface.f90 | A differentiable field abstraction, deferring function evaluation and differential operator implementations to child classes |
ellipsoidal_field_interface | ellipsoidal_field_interface.f90 | Define a 3D scalar field with ellipsoidal isosurfaces and provide differential operators |
ellipsoidal_field_implementation | ellipsoidal_field_implementation.f90 | |
emulated_intrinsics_interface | emulated_intrinsics_interface.F90 | Fortran 2008 coarray emulations of Fortran 2018 intrinsic collective subroutines
and Fortran 2003 emulation of Fortran 2008 intrinsic procedures (e.g, findloc) |
emulated_intrinsics_implementation | emulated_intrinsics_implementation.F90 | |
geometry_interface | geometry_interface.f90 | abstract representation of problem geometry Read more… |
geometry_implementation | geometry_implementation.f90 | geometry procedures Read more… |
grid_interface | grid_interface.F90 | One parent abstraction for interacing with Morfeus-FD structured_grid objects or FV field objects |
grid_implementation | grid_implementation.f90 | |
kind_parameters | kind_parameters.f90 | This module contains the kinds used for specifying the precision of variables |
mat_copper | mat_copper.f90 | |
mat_copper_procedures | mat_copper_procedures.f90 | |
mat_water | mat_water.f90 | |
mat_water_procedures | mat_water_procedures.f90 | |
object_interface | object_interface.f90 | |
object_implementation | object_implementation.f90 | |
op_d2dt2 | op_d2dt2.f90 | A gfortran 8.3.0 bug precludes putting this in the scalar_pde_d2dt2_phi and
scalar_pde_d2dt2_fld_phi interface bodies
A gfortran 8.3.0 bug precludes putting this in the vector_pde_d2dt2_phi and
vector_pde_d2dt2_fld_phi interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
op_d2dt2_procedures | op_d2dt2_procedures.f90 | |
scalar_pde_d2dt2_implementation | scalar_pde_d2dt2.f90 | |
vector_pde_d2dt2_implementation | vector_pde_d2dt2.f90 | |
op_ddt | op_ddt.f90 | A gfortran 8.3.0 bug precludes putting this inside the scalar_pde_ddt_phi
and scalar_pde_ddt_fld_phi interface bodies
A gfortran 8.3.0 bug precludes putting this inside the vector_pde_ddt_phi
and vector_pde_ddt_fld_phi interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
op_ddt_procedures | op_ddt_procedures.f90 | |
scalar_pde_ddt_implementation | scalar_pde_ddt.f90 | |
vector_pde_ddt_implementation | vector_pde_ddt.f90 | |
op_div | op_div.f90 | A gfortran 8.3.0 bug prevents moving this into the scalar_pde_div or flux_pde_div interface bodies
A gfortran 8.3.0 bug prevents moving this into the vector_pde_div interface body
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
flux_pde_div_implementation | flux_pde_div.f90 | |
scalar_pde_div_implementation | scalar_pde_div.f90 | |
vector_pde_div_implementation | vector_pde_div.f90 | |
op_field | op_field.f90 | |
rhie_chow_implementation | rhie_chow.f90 | |
scalar_fld_vector_mul_implementation | scalar_fld_vector_mul.f90 | |
scalar_vector_fld_mul_implementation | scalar_vector_fld_mul.f90 | |
vector_field_flux_implementation | vector_field_flux.f90 | |
op_grad | op_grad.f90 | Needed only by vector_pde_grad; a gfortran bug requires locating it here
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
scalar_field_grad_implementation | scalar_field_grad.f90 | |
vector_field_grad_implementation | vector_field_grad.f90 | |
vector_pde_grad_implementation | vector_pde_grad.f90 | |
op_laplacian | op_laplacian.f90 | A gfortran 8.3.0 bug precludes putting this in the scalar_pde_laplacian_phi and
scalar_pde_laplacian_gamma_phi interface bodies
A gfortran 8.3.0 bug precludes putting this in the vector_pde_laplacian_gamma_phi and
vector_pde_laplacian_gamma_phi interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
op_laplacian_procedures | op_laplacian_procedures.f90 | |
scalar_pde_laplacian_implementation | scalar_pde_laplacian.f90 | |
vector_pde_laplacian_implementation | vector_pde_laplacian.f90 | |
op_source | op_source.f90 | A gfortran bug precludes moving this into the scalar_pde_source interface body |
scalar_pde_source_implementation | scalar_pde_source.f90 | |
package_interface | package_interface.F90 | Encapsulate halo data to be communicated across structured_grid block boundaries |
package_implementation | package_implementation.F90 | Encapsulate information and procedures for structured_grid block halo exchanges |
part_block | part_block.f90 | |
part_block_procedures | part_block_procedures.f90 | |
part_graph | part_graph.f90 | |
part_graph_procedures | part_graph_procedures.f90 | |
part_random | part_random.f90 | |
part_random_procedures | part_random_procedures.f90 | |
plate_3d_interface | plate_3D_interface.F90 | Encapsulate a 3D plate geometry and grid-verification method |
plate_3d_implementation | plate_3D_implementation.F90 | |
problem_discretization_interface | problem_discretization_interface.F90 | Encapsulate the problem geometry, grid points, and dependent variables |
define_problem_discretization | problem_discretization_implementation.F90 | |
renum | renum.F90 | |
renum_procedures | renum_procedures.F90 | |
renum_gps | renum_gps.f90 | $
$ subroutine realloc(vet,sz1,sz2)
$ ! Performs on the fly reallocation of pointer VET changing its
$ ! size from SZ1 to SZ2
$ implicit none
$ !
$ integer, pointer :: vet(:), tmp(:)
$ integer, intent(in) :: sz1, sz2
$ !
$ integer :: info
$
$ allocate(tmp(sz2),stat=info)
$ if(info /= 0) then
$ write(,) 'ERROR! Memory allocation failure in REALLOC'
$ stop
$ end if
$
$ tmp(1:sz1) = vet(1:sz1)
$
$ deallocate(vet)
$ vet => tmp
$
$ end subroutine realloc |
sphere_1d_interface | sphere_1D_interface.F90 | Encapsulate a 3D plate geometry and grid-verification method |
sphere_1d_implementation | sphere_1D_implementation.F90 | |
spherical_1d_solver_module | spherical_1D_solver_module.F90 | Solve the 1D heat equation in spherically symmetric radial coordinates |
solver_submodule | spherical_1D_solver_submodule.F90 | |
spherical_grid_interface | spherical_grid_interface.f90 | |
spherical_grid_implementation | spherical_grid_implementation.f90 | |
string_functions_interface | string_functions_interface.f90 | utilities for manipulating character variables Read more… |
string_functions_implementation | string_functions_implementation.f90 | |
structured_grid_interface | structured_grid_interface.F90 | Hexahedral, structured-grid block encapsulating nodal data and deferring coordinate-specific procedures to child classes |
structured_grid_implementation | structured_grid_implementation.F90 | |
surfaces_interface | surfaces_interface.F90 | Encapsulate block boundary data for structured_grid halo exchanges |
surfaces_implementation | surfaces_implementation.F90 | Implement procedures for exchanging information with halo blocks in block-structured grid |
tools_bc | tools_bc.f90 | |
rd_inp_bc_implementation | rd_inp_bc.f90 | |
rd_inp_bc_math_implementation | rd_inp_bc_math.f90 | |
tools_input | tools_input.f90 | |
find_section_implementation | find_section.f90 | |
get_par_d_implementation | get_par_d.f90 | |
get_par_h_implementation | get_par_h.f90 | |
get_par_i_implementation | get_par_i.f90 | |
get_par_l_implementation | get_par_l.f90 | |
get_par_v_implementation | get_par_v.f90 | |
open_file_implementation | open_file.F90 | |
read_par_d_implementation | read_par_d.f90 | |
read_par_h_implementation | read_par_h.f90 | |
read_par_i_implementation | read_par_i.f90 | |
read_par_l_implementation | read_par_l.f90 | |
read_par_v_implementation | read_par_v.f90 | |
tools_material | tools_material.f90 | |
load_material_implementation | load_material.f90 | |
rd_inp_material_implementation | rd_inp_material.f90 | |
tools_math | tools_math.f90 | |
cart_to_polar_implementation | cart_to_polar_implementation.f90 | |
cholesky_implementation | cholesky_implementation.f90 | |
isort_implementation | isort_implementation.f90 | |
lin_interp_implementation | lin_interp_implementation.f90 | |
lu_implementation | lu_implementation.F90 | |
psb_solve_implementation | psb_solve_sys_implementation.f90 | |
pwl_implementation | pwl_implementation.f90 | |
tools_mesh | tools_mesh.f90 | |
cmp_mesh_desc_implementation | cmp_mesh_desc.f90 | |
rd_cgns_mesh_implementation | rd_cgns_mesh.F90 | |
rd_exodus_mesh_implementation | rd_exodus_mesh.f90 | |
rd_gambit_implementation | rd_gambit_implementation.f90 | |
rd_gmsh_implementation | rd_gmsh_implementation.f90 | |
rd_inp_implementation | rd_inp_mesh_implementation.f90 | |
supplement_implementation | supplement_implementation.f90 | |
cmp_mesh_implementation | cmp_mesh_implementation.f90 | |
tools_mesh_basics | tools_mesh_basics.f90 | |
geom_cell_implementation | geom_cell.f90 | |
geom_diff_implementation | geom_diff.f90 | |
geom_face_implementation | geom_face.f90 | |
geom_hex_dihedral_angle_implementation | geom_hex_dihedral_angle.f90 | |
geom_hex_quality_implementation | geom_hex_quality.f90 | |
geom_tet_center_implementation | geom_tet_center.f90 | |
geom_tet_dihedral_angle_implementation | geom_tet_dihedral_angle.f90 | |
geom_tet_quality_implementation | geom_tet_quality.f90 | |
geom_tet_volume_implementation | geom_tet_volume.f90 | |
tools_mesh_check | tools_mesh_check.f90 | An Intel 18.0.5 bug precludes putting this in the interface bodies
An Intel 18.0.5 bug precludes putting this in the interface bodies |
check_mesh_quality_implementation | check_mesh_quality.f90 | |
tools_mesh_check_tet | check_tet_quality.f90 | |
tools_mesh_check_vertex | check_vertex_quality.f90 | |
tools_mesh_move | tools_mesh_move.f90 | |
rd_inp_motion_law_implementation | rd_inp_motion_law.f90 | |
tools_mesh_optimize | tools_mesh_optimize.f90 | |
laplacian_smooth_implementation | laplacian_smooth.f90 | |
mobile_verts_implementation | mobile_verts.f90 | |
check_right_handed_implementation | check_right_handed.f90 | |
smooth_interior_vtx_implementation | smooth_interior_vtx.f90 | |
smooth_mesh_implementation | smooth_mesh.f90 | |
smooth_surf_vtx_implementation | smooth_surf_vtx.f90 | |
tools_nemo | tools_nemo.f90 | |
tools_operators | tools_operators.f90 | |
tools_operators_procedures | tools_operators_procedures.f90 | |
tools_output | tools_output.f90 | |
write_mesh_implementation | write_mesh.f90 | |
write_scalar_field_implementation | write_scalar_field.f90 | |
write_vector_field_implementation | write_vector_field.f90 | |
tools_output_basics | tools_output_basics.f90 | |
htoi_implementation | htoi.f90 | |
itoh_implementation | itoh.f90 | |
wr_mtx_matrix_implementation | wr_mtx_matrix.f90 | |
wr_mtx_pattern_implementation | wr_mtx_pattern.f90 | |
wr_mtx_vector_implementation | wr_mtx_vector.f90 | |
tools_part | tools_part.f90 | |
tools_part_procedures | tools_part_procedures.f90 | |
tools_psblas | tools_psblas.f90 | $ integer, parameter :: longndig=12
$ integer, parameter :: nemo_int_long_ = selected_int_kind(longndig)
$ ! ----- Extra PSBLAS Broadcast Routines -----
$
$ subroutine psb_hbcastv(ictxt,dat,root,length)
$ use mpi
$ integer, intent(in) :: ictxt
$ character(len=), intent(inout) :: dat(:)
$ integer, intent(in), optional :: root, length
$ !
$ integer :: root_, icomm, length_, info
$
$ if (present(root)) then
$ root_ = root
$ else
$ root_ = 0
$ endif
$ if (present(length)) then
$ length_ = length
$ else
$ length_ = len(dat)
$ endif
$
$ call psb_get_mpicomm(ictxt,icomm)
$
$ call mpi_bcast(dat,length_size(dat),MPI_CHARACTER,root_,icomm,info)
$
$ end subroutine psb_hbcastv |
tools_psblas_procedures | tools_psblas_procedures.f90 | $ ! ----- Extra PSBLAS Broadcast Routines -----
$
$ subroutine psb_hbcastv(ictxt,dat,root,length)
$ use mpi
$ integer, intent(in) :: ictxt
$ character(len=), intent(inout) :: dat(:)
$ integer, intent(in), optional :: root, length
$ !
$ integer :: root_, icomm, length_, info
$
$ if (present(root)) then
$ root_ = root
$ else
$ root_ = 0
$ endif
$ if (present(length)) then
$ length_ = length
$ else
$ length_ = len(dat)
$ endif
$
$ call psb_get_mpicomm(ictxt,icomm)
$
$ call mpi_bcast(dat,length_size(dat),MPI_CHARACTER,root_,icomm,info)
$
$ end subroutine psb_hbcastv |
type_table | type_table.f90 | |
type_table_procedures | type_table_procedures.f90 | |
units_interface | units_interface.F90 | Define SI and British units of measurement and associated arithmetic operators |
units_implementation | units_implementation.F90 | |