Documentation for module cube_utils

for a given dr()/dh(r) this will provide the bounds to be used if one wants to go over a sphere-subregion of given radius

source: cube_utils.F
Loading...

public Types:

cube_info_type
...

public Subroutines/Functions:

unifies the computation of the cube center, so that differences in implementation, and thus roundoff and numerics can not lead to off-by-one errors (which can lead to out-of-bounds access with distributed grids). in principle, something similar would be needed for the computation of the cube bounds
SUBROUTINE
destroy_cube_info (info)
...
...
...
FUNCTION
INTEGER
return_cube_max_iradius (info)
...
...

public Types:

TYPE :: cube_info_type

...


INTEGER
:: max_radius ...
REAL(dp)
:: dr ...
REAL(dp)
:: drmin ...
REAL(dp)
:: dh ...
REAL(dp)
:: dh_inv ...
LOGICAL
:: orthorhombic ...
INTEGER,
POINTER :: lb_cube ...
INTEGER,
POINTER :: ub_cube ...
TYPE(cube_ptr),
POINTER, DIMENSION(:) :: sphere_bounds ...
INTEGER,
POINTER :: sphere_bounds_count ...
REAL(dp)
:: max_rad_ga ...

SUBROUTINEcompute_cube_center(cube_center, rs_desc, zeta, zetb, ra, rab)

unifies the computation of the cube center, so that differences in implementation, and thus roundoff and numerics can not lead to off-by-one errors (which can lead to out-of-bounds access with distributed grids). in principle, something similar would be needed for the computation of the cube bounds

Arguments:
INTEGER,
INTENT(out)
:: cube_center(3) ...
POINTER
:: rs_desc ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...
REAL(dp),
INTENT(in)
:: ra(3) ...
REAL(dp),
INTENT(in)
:: rab(3) ...

SUBROUTINEdestroy_cube_info(info)

...

Arguments:
:: info ...

SUBROUTINEinit_cube_info(info, dr, dh, dh_inv, ortho, max_radius)

...

Arguments:
INTENT(out)
:: info ...
REAL(dp),
INTENT(in)
:: dr(3) ...
REAL(dp),
INTENT(in)
:: dh(3,3) ...
REAL(dp),
INTENT(in)
:: dh_inv(3,3) ...
LOGICAL,
INTENT(in)
:: ortho ...
REAL(dp),
INTENT(in)
:: max_radius ...

SUBROUTINEreturn_cube(info, radius, lb_cube, ub_cube, sphere_bounds)

...

Arguments:
:: info ...
REAL(dp)
:: radius ...
INTEGER
:: lb_cube(3) ...
INTEGER
:: ub_cube(3) ...
INTEGER,
POINTER
:: sphere_bounds(:) ...

FUNCTIONreturn_cube_max_iradius(info)

...

Return Value ::
INTEGER
Arguments:
:: info ...

SUBROUTINEreturn_cube_nonortho(info, radius, lb, ub, rp)

...

Arguments:
:: info ...
REAL(dp)
:: radius ...
INTEGER
:: lb(3) ...
INTEGER
:: ub(3) ...
REAL(dp)
:: rp(3) ...

private Parameters/Types:

private Types:

TYPE :: cube_ptr

...


INTEGER,
POINTER, DIMENSION(:) :: p ...