Ignore:
Timestamp:
Dec 18, 2018 12:31:28 PM (5 years ago)
Author:
knoop
Message:

OpenACC port for SPEC

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/prognostic_equations.f90

    r3589 r3634  
    2525! -----------------
    2626! $Id$
     27! OpenACC port for SPEC
     28!
     29! 3589 2018-11-30 15:09:51Z suehring
    2730! Move the control parameter "salsa" from salsa_mod to control_parameters
    2831! (M. Kurppa)
     
    15661569    CALL cpu_log( log_point(5), 'u-equation', 'start' )
    15671570
     1571    !$ACC KERNELS PRESENT(tend)
    15681572    tend = 0.0_wp
     1573    !$ACC END KERNELS
    15691574    IF ( timestep_scheme(1:5) == 'runge' )  THEN
    15701575       IF ( ws_scheme_mom )  THEN
     
    16141619!
    16151620!-- Prognostic equation for u-velocity component
     1621    !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1622    !$ACC PRESENT(u, tend, tu_m, u_init, rdf, wall_flags_0) &
     1623    !$ACC PRESENT(tsc(2:5)) &
     1624    !$ACC PRESENT(u_p)
    16161625    DO  i = nxlu, nxr
    16171626       DO  j = nys, nyn
     
    16401649    IF ( timestep_scheme(1:5) == 'runge' )  THEN
    16411650       IF ( intermediate_timestep_count == 1 )  THEN
     1651          !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1652          !$ACC PRESENT(tend, tu_m)
    16421653          DO  i = nxlu, nxr
    16431654             DO  j = nys, nyn
     
    16491660       ELSEIF ( intermediate_timestep_count < &
    16501661                intermediate_timestep_count_max )  THEN
     1662          !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1663          !$ACC PRESENT(tend, tu_m)
    16511664          DO  i = nxlu, nxr
    16521665             DO  j = nys, nyn
     
    16661679    CALL cpu_log( log_point(6), 'v-equation', 'start' )
    16671680
     1681    !$ACC KERNELS PRESENT(tend)
    16681682    tend = 0.0_wp
     1683    !$ACC END KERNELS
    16691684    IF ( timestep_scheme(1:5) == 'runge' )  THEN
    16701685       IF ( ws_scheme_mom )  THEN
     
    17111726!
    17121727!-- Prognostic equation for v-velocity component
     1728    !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1729    !$ACC PRESENT(v, tend, tv_m, v_init, rdf, wall_flags_0) &
     1730    !$ACC PRESENT(tsc(2:5)) &
     1731    !$ACC PRESENT(v_p)
    17131732    DO  i = nxl, nxr
    17141733       DO  j = nysv, nyn
     
    17371756    IF ( timestep_scheme(1:5) == 'runge' )  THEN
    17381757       IF ( intermediate_timestep_count == 1 )  THEN
     1758          !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1759          !$ACC PRESENT(tend, tv_m)
    17391760          DO  i = nxl, nxr
    17401761             DO  j = nysv, nyn
     
    17461767       ELSEIF ( intermediate_timestep_count < &
    17471768                intermediate_timestep_count_max )  THEN
     1769          !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1770          !$ACC PRESENT(tend, tv_m)
    17481771          DO  i = nxl, nxr
    17491772             DO  j = nysv, nyn
     
    17631786    CALL cpu_log( log_point(7), 'w-equation', 'start' )
    17641787
     1788    !$ACC KERNELS PRESENT(tend)
    17651789    tend = 0.0_wp
     1790    !$ACC END KERNELS
    17661791    IF ( timestep_scheme(1:5) == 'runge' )  THEN
    17671792       IF ( ws_scheme_mom )  THEN
     
    18041829!
    18051830!-- Prognostic equation for w-velocity component
     1831    !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1832    !$ACC PRESENT(w, tend, tw_m, v_init, rdf, wall_flags_0) &
     1833    !$ACC PRESENT(tsc(2:5)) &
     1834    !$ACC PRESENT(w_p)
    18061835    DO  i = nxl, nxr
    18071836       DO  j = nys, nyn
     
    18211850    IF ( timestep_scheme(1:5) == 'runge' )  THEN
    18221851       IF ( intermediate_timestep_count == 1 )  THEN
     1852          !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1853          !$ACC PRESENT(tend, tw_m)
    18231854          DO  i = nxl, nxr
    18241855             DO  j = nys, nyn
     
    18301861       ELSEIF ( intermediate_timestep_count < &
    18311862                intermediate_timestep_count_max )  THEN
     1863          !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1864          !$ACC PRESENT(tend, tw_m)
    18321865          DO  i = nxl, nxr
    18331866             DO  j = nys, nyn
     
    18681901!--    pt-tendency terms with no communication
    18691902       IF ( scalar_advec /= 'bc-scheme' )  THEN
     1903          !$ACC KERNELS PRESENT(tend)
    18701904          tend = 0.0_wp
     1905          !$ACC END KERNELS
    18711906          IF ( timestep_scheme(1:5) == 'runge' )  THEN
    18721907             IF ( ws_scheme_sca )  THEN
     
    19261961!
    19271962!--    Prognostic equation for potential temperature
     1963       !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1964       !$ACC PRESENT(pt, tend, tpt_m, wall_flags_0) &
     1965       !$ACC PRESENT(pt_init, rdf_sc, ptdf_x, ptdf_y) &
     1966       !$ACC PRESENT(tsc(3:5)) &
     1967       !$ACC PRESENT(pt_p)
    19281968       DO  i = nxl, nxr
    19291969          DO  j = nys, nyn
     
    19451985       IF ( timestep_scheme(1:5) == 'runge' )  THEN
    19461986          IF ( intermediate_timestep_count == 1 )  THEN
     1987             !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1988             !$ACC PRESENT(tend, tpt_m)
    19471989             DO  i = nxl, nxr
    19481990                DO  j = nys, nyn
     
    19541996          ELSEIF ( intermediate_timestep_count < &
    19551997                   intermediate_timestep_count_max )  THEN
     1998             !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     1999             !$ACC PRESENT(tend, tpt_m)
    19562000             DO  i = nxl, nxr
    19572001                DO  j = nys, nyn
Note: See TracChangeset for help on using the changeset viewer.