Skip to content

fundal_weno5_kernels_r8_b

Source: src/third_party/FUNDAL/src/tests/precision/fundal_weno5_kernels_r8_b.F90

Dependencies

Contents

Subroutines

dekker_from_r8_b_r8

Reshape from canonical shape A (b,i,j,k,c) into shape B (c,i,j,k,b). Both arrays are R8P here (Dekker has nothing to do with it; the name suffix _r8 disambiguates from the FP32 dekker_from_r8_b in the realistic Dekker module).

fortran
subroutine dekker_from_r8_b_r8(U_in, U_out, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
U_inreal(kind=R8P)in
U_outreal(kind=R8P)out
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in

dekker_to_r8_b_r8

Reshape from shape B (c,i,j,k,b) back to canonical (b,i,j,k,c).

fortran
subroutine dekker_to_r8_b_r8(U_in, U_out, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
U_inreal(kind=R8P)in
U_outreal(kind=R8P)out
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in

ghost_fill_r8_b

Periodic ghost fill on shape B. Loop order F (b outermost in the parallel set, c innermost in the body — but since c is part of the collapsed parallel surface here, the loop runs c lexically innermost = vector dimension, which is also stride-1 in shape B).

fortran
subroutine ghost_fill_r8_b(U, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
Ureal(kind=R8P)inout
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in

weno5_rhs_r8_b_cpar

!$acc parallel loop collapse(5) over (b, k, j, i, c) — c lexically innermost = vector dim = stride-1 in shape B. This is the analogue of V3f' on shape B for FP64.

fortran
subroutine weno5_rhs_r8_b_cpar(U, rhs, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
Ureal(kind=R8P)in
rhsreal(kind=R8P)out
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in

Call graph

weno5_rhs_r8_b_cseq

V1B': shape B, c-sequential. Realistic-CFD constraint applied to FP64 with shape B. !$acc parallel loop collapse(4) over (b, k, j, i), inner do c sequential. i is the lexically innermost dim in the parallel set — order F for shape B (since c is removed from the parallel surface, the next stride-1 candidate in the parallel set is i with stride nc=5).

fortran
subroutine weno5_rhs_r8_b_cseq(U, rhs, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
Ureal(kind=R8P)in
rhsreal(kind=R8P)out
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in

Call graph

rk1_update_r8_b_cpar

V1B: collapse(5) update on shape B, c parallel.

fortran
subroutine rk1_update_r8_b_cpar(U, rhs, dt, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
Ureal(kind=R8P)inout
rhsreal(kind=R8P)in
dtreal(kind=R8P)in
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in

rk1_update_r8_b_cseq

V1B': collapse(4) over (b,k,j,i) + inner seq c, shape B.

fortran
subroutine rk1_update_r8_b_cseq(U, rhs, dt, nb, ni, ng, nc)

Arguments

NameTypeIntentAttributesDescription
Ureal(kind=R8P)inout
rhsreal(kind=R8P)in
dtreal(kind=R8P)in
nbinteger(kind=I4P)in
niinteger(kind=I4P)in
nginteger(kind=I4P)in
ncinteger(kind=I4P)in