Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

end pragma with curly braces #300

Open
ecossevin opened this issue Apr 25, 2024 · 0 comments
Open

end pragma with curly braces #300

ecossevin opened this issue Apr 25, 2024 · 0 comments
Assignees

Comments

@ecossevin
Copy link

ecossevin commented Apr 25, 2024

  1. ACDC PARALLEL TARGET [...] works but not ACDC PARALLEL,TARGET [...] (see fcode2 vs fcode3)
    2)loki doesn't recognize curly braces to define pragma region (see fcode2 vs fcode4)
from loki import * 

fcode1 = """
    SUBROUTINE TEST

    !$loki parallel TARGET=OpenMP/OpenMPSingleColumn/OpenACCSingleColumn,NAME=CPPHINP 
    PRINT *, "loki"
    !$loki end parallel

    END SUBROUTINE"""


routine = Sourcefile.from_source(fcode1)["TEST"]
with pragma_regions_attached(routine):
    for region in FindNodes(PragmaRegion).visit(routine.body):
        print(f"{region=}")
        print("region = ", fgen(region.body))
        assert fgen(region.body) == 'PRINT *, "loki"'

fcode2 = """
    SUBROUTINE TEST

    !$ACDC PARALLEL TARGET=OpenMP/OpenMPSingleColumn/OpenACCSingleColumn,NAME=CPPHINP 
    PRINT *, "ACDC_endparallel"
    !$ACDC END PARALLEL


    END SUBROUTINE"""

routine = Sourcefile.from_source(fcode2)["TEST"]
with pragma_regions_attached(routine):
    for region in FindNodes(PragmaRegion).visit(routine.body):
        print(f"{region=}")
        print("region = ", fgen(region.body))
        assert fgen(region.body) == 'PRINT *, "ACDC_endparallel"'

fcode3 = """
    SUBROUTINE TEST

    !$ACDC PARALLEL,TARGET=OpenMP/OpenMPSingleColumn/OpenACCSingleColumn,NAME=CPPHINP 
    PRINT *, "ACDC_coma"
    !$ACDC END PARALLEL


    END SUBROUTINE"""
routine = Sourcefile.from_source(fcode3)["TEST"]
with pragma_regions_attached(routine):
    for region in FindNodes(PragmaRegion).visit(routine.body):
        print(f"{region=}")
        print("region = ", fgen(region.body))
        assert fgen(region.body) == 'PRINT *, "ACDC_coma"'

fcode4 = """
    SUBROUTINE TEST

    !$ACDC PARALLEL TARGET=OpenMP/OpenMPSingleColumn/OpenACCSingleColumn,NAME=CPPHINP 
    PRINT *, "ACDC_curly_brace"
    !$ACDC }


    END SUBROUTINE"""
routine = Sourcefile.from_source(fcode4)["TEST"]
with pragma_regions_attached(routine):
    for region in FindNodes(PragmaRegion).visit(routine.body):
        print(f"{region=}")
        print("region = ", fgen(region.body))
        assert fgen(region.body) == 'PRINT *, "ACDC_curly_brace"'
@mlange05 mlange05 self-assigned this Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants