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/boundary_conds.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)
     
    289292       kb = MERGE( -1, 1, l == 0 )
    290293       !$OMP PARALLEL DO PRIVATE( i, j, k )
     294       !$ACC PARALLEL LOOP PRIVATE(i, j, k) &
     295       !$ACC PRESENT(bc_h, w_p)
    291296       DO  m = 1, bc_h(l)%ns
    292297          i = bc_h(l)%i(m)           
     
    300305!-- Top boundary. A nested domain ( ibc_uv_t = 3 ) does not require settings.
    301306    IF ( ibc_uv_t == 0 )  THEN
     307        !$ACC KERNELS PRESENT(u_p, v_p, u_init, v_init)
    302308        u_p(nzt+1,:,:) = u_init(nzt+1)
    303309        v_p(nzt+1,:,:) = v_init(nzt+1)
     310        !$ACC END KERNELS
    304311    ELSEIF ( ibc_uv_t == 1 )  THEN
    305312        u_p(nzt+1,:,:) = u_p(nzt,:,:)
     
    311318    IF (  .NOT.  child_domain  .AND.  .NOT.  nesting_offline  .AND.            &
    312319                 TRIM(coupling_mode) /= 'vnested_fine' )  THEN
     320       !$ACC KERNELS PRESENT(w_p)
    313321       w_p(nzt:nzt+1,:,:) = 0.0_wp  !< nzt is not a prognostic level (but cf. pres)
     322       !$ACC END KERNELS
    314323    ENDIF
    315324
     
    342351          kb = MERGE( -1, 1, l == 0 )
    343352          !$OMP PARALLEL DO PRIVATE( i, j, k )
     353          !$ACC PARALLEL LOOP PRIVATE(i, j, k) &
     354          !$ACC PRESENT(bc_h, pt_p)
    344355          DO  m = 1, bc_h(l)%ns
    345356             i = bc_h(l)%i(m)           
     
    364375        pt_p(nzt+1,:,:) = pt_p(nzt,:,:)
    365376    ELSEIF ( ibc_pt_t == 2 )  THEN
     377        !$ACC KERNELS PRESENT(pt_p, dzu)
    366378        pt_p(nzt+1,:,:) = pt_p(nzt,:,:) + bc_pt_t_val * dzu(nzt+1)
     379        !$ACC END KERNELS
    367380    ENDIF
    368381
     
    379392             kb = MERGE( -1, 1, l == 0 )
    380393             !$OMP PARALLEL DO PRIVATE( i, j, k )
     394             !$ACC PARALLEL LOOP PRIVATE(i, j, k) &
     395             !$ACC PRESENT(bc_h, e_p)
    381396             DO  m = 1, bc_h(l)%ns
    382397                i = bc_h(l)%i(m)           
     
    444459
    445460       IF ( .NOT. child_domain )  THEN
     461          !$ACC KERNELS PRESENT(e_p)
    446462          e_p(nzt+1,:,:) = e_p(nzt,:,:)
     463          !$ACC END KERNELS
    447464!
    448465!--    Nesting case: if parent operates in RANS mode and child in LES mode,
Note: See TracChangeset for help on using the changeset viewer.