Ignore:
Timestamp:
Mar 10, 2013 2:48:14 AM (11 years ago)
Author:
raasch
Message:

GPU porting of boundary conditions and routine pres; index bug removec from radiation boundary condition

File:
1 edited

Legend:

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

    r1112 r1113  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! GPU-porting of boundary conditions,
     23! openACC directives updated
     24! formal parameter removed from routine boundary_conds
    2325!
    2426! Former revisions:
     
    242244!--       Exchange of ghost points (lateral boundary conditions)
    243245          CALL cpu_log( log_point(26), 'exchange-horiz-progn', 'start' )
    244           !$acc update host( e_p, pt_p, u_p, v_p, w_p )
     246
     247          IF ( numprocs == 1 )  THEN    ! workaround for single-core GPU runs
     248             on_device = .TRUE.         ! to be removed after complete porting
     249          ELSE                          ! of ghost point exchange
     250             !$acc update host( e_p, pt_p, u_p, v_p, w_p )
     251          ENDIF
     252
    245253          CALL exchange_horiz( u_p, nbgp )
    246254          CALL exchange_horiz( v_p, nbgp )
     
    268276          IF ( wang_kernel  .OR.  turbulence )  CALL exchange_horiz( diss, nbgp )
    269277
     278          IF ( numprocs == 1 )  THEN    ! workaround for single-core GPU runs
     279             on_device = .FALSE.        ! to be removed after complete porting
     280          ELSE                          ! of ghost point exchange
     281             !$acc update device( e_p, pt_p, u_p, v_p, w_p )
     282          ENDIF
     283
    270284          CALL cpu_log( log_point(26), 'exchange-horiz-progn', 'stop' )
    271285
     
    273287!--       Boundary conditions for the prognostic quantities (except of the
    274288!--       velocities at the outflow in case of a non-cyclic lateral wall)
    275           CALL boundary_conds( 'main' )
     289          CALL boundary_conds
    276290
    277291!
    278292!--       Swap the time levels in preparation for the next time step.
    279           !$acc update device( e_p, pt_p, u_p, v_p, w_p )
    280293          CALL swap_timelevel
    281294
     
    305318             IF ( time_disturb >= dt_disturb )  THEN
    306319                !$acc update host( u, v )
     320                IF ( numprocs == 1 )  on_device = .FALSE.  ! workaround, remove later
    307321                IF ( hom(nzb+5,1,pr_palm,0) < disturbance_energy_limit )  THEN
    308322                   CALL disturb_field( nzb_u_inner, tend, u )
     
    317331                   dist_range = 0
    318332                ENDIF
     333                IF ( numprocs == 1 )  on_device = .TRUE.  ! workaround, remove later
    319334                !$acc update device( u, v )
    320335                time_disturb = time_disturb - dt_disturb
Note: See TracChangeset for help on using the changeset viewer.