gradient Submodule


Uses

  • module~~gradient~~UsesGraph module~gradient gradient module~calculus calculus module~gradient->module~calculus module~phys_consts phys_consts module~calculus->module~phys_consts module~mesh mesh module~calculus->module~mesh iso_fortran_env iso_fortran_env module~phys_consts->iso_fortran_env module~mesh->module~phys_consts

Contents


Module Procedures

module procedure grad3D1_curv_3 module function grad3D1_curv_3(f, x, lbnd1, ubnd1, lbnd2, ubnd2, lbnd3, ubnd3)

ERROR CHECKING TO MAKE SURE DIFFRENCING IS DONE OVER A CONSISTENTLY-SIZED GRID just bail on it and let the user figure it out NOW EXECUTE THE FINITE DIFFERENCES - NOTE THAT LOOP INDICES ARE MEANT TO INDEX ARRAY BEING DIFFERENCED AND NOT THE MESH STRUCTURE, WHICH USES INPUT BOUNDS. TO KEEP THE CODE CLEAN I'VE ALIASED THE GRID VARS SO THAT THEY MAY BE ACCESSED BY LOOP INDEX. fwd diff. at beginning, note that h1 is cell-centered centered diff. in the middleq backward diff. at end

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(:,:,:):: f
type(curvmesh), intent(in) :: x
integer, intent(in) :: lbnd1
integer, intent(in) :: ubnd1
integer, intent(in) :: lbnd2
integer, intent(in) :: ubnd2
integer, intent(in) :: lbnd3
integer, intent(in) :: ubnd3

Return Value real(kind=wp), dimension(1:size(f,1),1:size(f,2),1:size(f,3))

module procedure grad3D1_curv_23 module function grad3D1_curv_23(f, x, lbnd1, ubnd1, lbnd2, ubnd2, lbnd3, ubnd3)

just bail on it and let the user figure it out NOW EXECUTE THE FINITE DIFFERENCES NOTE THAT LOOP INDICES ARE MEANT TO INDEX ARRAY BEING DIFFERENCED AND NOT THE MESH STRUCTURE, WHICH USES INPUT BOUNDS. TO KEEP THE CODE CLEAN I'VE ALIASED THE GRID VARS SO THAT THEY MAY BE ACCESSED BY LOOP INDEX. fwd diff. at beginning, note that h1 is cell-centered centered diff. in the middleq backward diff. at end

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(:,:,:):: f
type(curvmesh), intent(in) :: x
integer, intent(in) :: lbnd1
integer, intent(in) :: ubnd1
integer, intent(in) :: lbnd2
integer, intent(in) :: ubnd2
integer, intent(in) :: lbnd3
integer, intent(in) :: ubnd3

Return Value real(kind=wp), dimension(1:size(f,1),1:size(f,2),1:size(f,3))

module procedure grad3D2_curv_3 module function grad3D2_curv_3(f, x, lbnd1, ubnd1, lbnd2, ubnd2, lbnd3, ubnd3)

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(:,:,:):: f
type(curvmesh), intent(in) :: x
integer, intent(in) :: lbnd1
integer, intent(in) :: ubnd1
integer, intent(in) :: lbnd2
integer, intent(in) :: ubnd2
integer, intent(in) :: lbnd3
integer, intent(in) :: ubnd3

Return Value real(kind=wp), dimension(1:size(f,1),1:size(f,2),1:size(f,3))

module procedure grad3D2_curv_23 module function grad3D2_curv_23(f, x, lbnd1, ubnd1, lbnd2, ubnd2, lbnd3, ubnd3)

just bail on it and let the user figure it out if a larger dimension was specified for x3 then assume that we are differentiating over x2all and x3all

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(:,:,:):: f
type(curvmesh), intent(in) :: x
integer, intent(in) :: lbnd1
integer, intent(in) :: ubnd1
integer, intent(in) :: lbnd2
integer, intent(in) :: ubnd2
integer, intent(in) :: lbnd3
integer, intent(in) :: ubnd3

Return Value real(kind=wp), dimension(1:size(f,1),1:size(f,2),1:size(f,3))

module procedure grad3D3_curv_3 module function grad3D3_curv_3(f, x, lbnd1, ubnd1, lbnd2, ubnd2, lbnd3, ubnd3)

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(:,:,:):: f
type(curvmesh), intent(in) :: x
integer, intent(in) :: lbnd1
integer, intent(in) :: ubnd1
integer, intent(in) :: lbnd2
integer, intent(in) :: ubnd2
integer, intent(in) :: lbnd3
integer, intent(in) :: ubnd3

Return Value real(kind=wp), dimension(1:size(f,1),1:size(f,2),1:size(f,3))

module procedure grad3D3_curv_23 module function grad3D3_curv_23(f, x, lbnd1, ubnd1, lbnd2, ubnd2, lbnd3, ubnd3)

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(:,:,:):: f
type(curvmesh), intent(in) :: x
integer, intent(in) :: lbnd1
integer, intent(in) :: ubnd1
integer, intent(in) :: lbnd2
integer, intent(in) :: ubnd2
integer, intent(in) :: lbnd3
integer, intent(in) :: ubnd3

Return Value real(kind=wp), dimension(1:size(f,1),1:size(f,2),1:size(f,3))