Changeset 4651 for palm/trunk/SOURCE


Ignore:
Timestamp:
Aug 27, 2020 7:17:45 AM (4 years ago)
Author:
raasch
Message:

preprocessor branch for ibm removed

Location:
palm/trunk/SOURCE
Files:
3 edited

Legend:

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

    r4646 r4651  
    2424! -----------------
    2525! $Id$
     26! preprocessor branch for ibm removed
     27!
     28! 4646 2020-08-24 16:02:40Z raasch
    2629! file re-formatted to follow the PALM coding standard
    2730!
     
    99102    REAL(wp), DIMENSION(:,:), ALLOCATABLE, SAVE ::  f_vec_x
    100103
    101 #if defined( __ibm )
    102     INTEGER(iwp), PARAMETER ::  nau1 = 20000  !<
    103     INTEGER(iwp), PARAMETER ::  nau2 = 22000  !<
    104 !
    105 !-- The following working arrays contain tables and have to be "save" and shared in OpenMP sense
    106     REAL(wp), DIMENSION(nau1), SAVE ::  aux1  !<
    107     REAL(wp), DIMENSION(nau1), SAVE ::  auy1  !<
    108     REAL(wp), DIMENSION(nau1), SAVE ::  aux3  !<
    109     REAL(wp), DIMENSION(nau1), SAVE ::  auy3  !<
    110 
    111 #elif defined( __nec_fft )
     104#if defined( __nec_fft )
    112105    INTEGER(iwp), SAVE ::  nz1  !<
    113106
     
    189182!--    The following temporary working arrays have to be on stack or private
    190183!--    in OpenMP sense
    191 #if defined( __ibm )
    192        REAL(wp), DIMENSION(nau2)   ::  aux2   !<
    193        REAL(wp), DIMENSION(nau2)   ::  auy2   !<
    194        REAL(wp), DIMENSION(nau2)   ::  aux4   !<
    195        REAL(wp), DIMENSION(nau2)   ::  auy4   !<
    196        REAL(wp), DIMENSION(0:nx+2) ::  workx  !<
    197        REAL(wp), DIMENSION(0:ny+2) ::  worky  !<
    198 #elif defined( __nec_fft )
     184#if defined( __nec_fft )
    199185       REAL(wp), DIMENSION(0:nx+3,nz+1)   ::  work_x  !<
    200186       REAL(wp), DIMENSION(0:ny+3,nz+1)   ::  work_y  !<
     
    228214          sqr_dnx = SQRT( dnx )
    229215          sqr_dny = SQRT( dny )
    230 #if defined( __ibm )
    231 !
    232 !--       Initialize tables for fft along x
    233           CALL DRCFT( 1, workx, 1, workx, 1, nx+1, 1,  1, sqr_dnx, aux1, nau1, aux2, nau2 )
    234           CALL DCRFT( 1, workx, 1, workx, 1, nx+1, 1, -1, sqr_dnx, aux3, nau1, aux4, nau2 )
    235 !
    236 !--       Initialize tables for fft along y
    237           CALL DRCFT( 1, worky, 1, worky, 1, ny+1, 1,  1, sqr_dny, auy1, nau1, auy2, nau2 )
    238           CALL DCRFT( 1, worky, 1, worky, 1, ny+1, 1, -1, sqr_dny, auy3, nau1, auy4, nau2 )
    239 #elif defined( __nec_fft )
     216
     217#if defined( __nec_fft )
    240218          message_string = 'fft method "' // TRIM( fft_method) // '" currently does not work on NEC'
    241219          CALL message( 'fft_init', 'PA0187', 1, 2, 0, 6, 0 )
     
    350328       REAL(wp), DIMENSION(nys_x:nyn_x,nzb_x:nzt_x,0:nx), OPTIONAL ::  ar_inv   !<
    351329
    352 #if defined( __ibm )
    353        REAL(wp), DIMENSION(nau2) ::  aux2  !<
    354        REAL(wp), DIMENSION(nau2) ::  aux4  !<
    355 #elif defined( __nec_fft )
     330#if defined( __nec_fft )
    356331       REAL(wp), DIMENSION(6*(nx+1)) ::  work2  !<
    357332#elif defined( __cuda_fft )
     
    643618       ELSEIF ( fft_method == 'system-specific' )  THEN
    644619
    645 #if defined( __ibm )
    646           IF ( forward_fft )  THEN
    647 
    648              !$OMP PARALLEL PRIVATE ( work, i, j, k )
    649              !$OMP DO
    650              DO  k = nzb_x, nzt_x
    651                 DO  j = nys_x, nyn_x
    652 
    653                    CALL DRCFT( 0, ar, 1, work, 1, nx+1, 1, 1, sqr_dnx, aux1, nau1, aux2, nau2 )
    654 
    655                    DO  i = 0, (nx+1)/2
    656                       ar(i,j,k) = work(2*i)
    657                    ENDDO
    658                    DO  i = 1, (nx+1)/2 - 1
    659                       ar(nx+1-i,j,k) = work(2*i+1)
    660                    ENDDO
    661 
    662                 ENDDO
    663              ENDDO
    664              !$OMP END PARALLEL
    665 
    666           ELSE
    667 
    668              !$OMP PARALLEL PRIVATE ( work, i, j, k )
    669              !$OMP DO
    670              DO  k = nzb_x, nzt_x
    671                 DO  j = nys_x, nyn_x
    672 
    673                    DO  i = 0, (nx+1)/2
    674                       work(2*i) = ar(i,j,k)
    675                    ENDDO
    676                    DO  i = 1, (nx+1)/2 - 1
    677                       work(2*i+1) = ar(nx+1-i,j,k)
    678                    ENDDO
    679                    work(1) = 0.0_wp
    680                    work(nx+2) = 0.0_wp
    681 
    682                    CALL DCRFT( 0, work, 1, work, 1, nx+1, 1, -1, sqr_dnx, aux3, nau1, aux4, nau2 )
    683 
    684                    DO  i = 0, nx
    685                       ar(i,j,k) = work(i)
    686                    ENDDO
    687 
    688                 ENDDO
    689              ENDDO
    690              !$OMP END PARALLEL
    691 
    692           ENDIF
    693 
    694 #elif defined( __nec_fft )
     620#if defined( __nec_fft )
    695621
    696622          IF ( forward_fft )  THEN
     
    822748       COMPLEX(wp), DIMENSION(:), ALLOCATABLE ::  cwork  !<
    823749
    824 #if defined( __ibm )
    825        REAL(wp), DIMENSION(nau2) ::  aux2       !<
    826        REAL(wp), DIMENSION(nau2) ::  aux4       !<
    827 #elif defined( __nec_fft )
     750#if defined( __nec_fft )
    828751       REAL(wp), DIMENSION(6*(nx+1)) ::  work2  !<
    829752#endif
     
    940863       ELSEIF ( fft_method == 'system-specific' )  THEN
    941864
    942 #if defined( __ibm )
    943           IF ( forward_fft )  THEN
    944 
    945              CALL DRCFT( 0, ar, 1, work, 1, nx+1, 1, 1, sqr_dnx, aux1, nau1, aux2, nau2 )
    946 
    947              DO  i = 0, (nx+1)/2
    948                 ar(i) = work(2*i)
    949              ENDDO
    950              DO  i = 1, (nx+1)/2 - 1
    951                 ar(nx+1-i) = work(2*i+1)
    952              ENDDO
    953 
    954           ELSE
    955 
    956              DO  i = 0, (nx+1)/2
    957                 work(2*i) = ar(i)
    958              ENDDO
    959              DO  i = 1, (nx+1)/2 - 1
    960                 work(2*i+1) = ar(nx+1-i)
    961              ENDDO
    962              work(1) = 0.0_wp
    963              work(nx+2) = 0.0_wp
    964 
    965              CALL DCRFT( 0, work, 1, work, 1, nx+1, 1, -1, sqr_dnx, aux3, nau1, aux4, nau2 )
    966 
    967              DO  i = 0, nx
    968                 ar(i) = work(i)
    969              ENDDO
    970 
    971           ENDIF
    972 #elif defined( __nec_fft )
     865#if defined( __nec_fft )
    973866          IF ( forward_fft )  THEN
    974867
     
    1061954       COMPLEX(wp), DIMENSION(:), ALLOCATABLE ::  cwork  !<
    1062955
    1063 #if defined( __ibm )
    1064        REAL(wp), DIMENSION(nau2) ::  auy2  !<
    1065        REAL(wp), DIMENSION(nau2) ::  auy4  !<
    1066 #elif defined( __nec_fft )
     956#if defined( __nec_fft )
    1067957       REAL(wp), DIMENSION(6*(ny+1)) ::  work2  !<
    1068958#elif defined( __cuda_fft )
     
    13471237       ELSEIF ( fft_method == 'system-specific' )  THEN
    13481238
    1349 #if defined( __ibm )
    1350           IF ( forward_fft)  THEN
    1351 
    1352              !$OMP PARALLEL PRIVATE ( work, i, j, k )
    1353              !$OMP DO
    1354              DO  k = nzb_y, nzt_y
    1355                 DO  i = nxl_y_l, nxr_y_l
    1356 
    1357                    CALL DRCFT( 0, ar, 1, work, 1, ny+1, 1, 1, sqr_dny, auy1, nau1, auy2, nau2 )
    1358 
    1359                    DO  j = 0, (ny+1)/2
    1360                       ar_tr(j,i,k) = work(2*j)
    1361                    ENDDO
    1362                    DO  j = 1, (ny+1)/2 - 1
    1363                       ar_tr(ny+1-j,i,k) = work(2*j+1)
    1364                    ENDDO
    1365 
    1366                 ENDDO
    1367              ENDDO
    1368              !$OMP END PARALLEL
    1369 
    1370           ELSE
    1371 
    1372              !$OMP PARALLEL PRIVATE ( work, i, j, k )
    1373              !$OMP DO
    1374              DO  k = nzb_y, nzt_y
    1375                 DO  i = nxl_y_l, nxr_y_l
    1376 
    1377                    DO  j = 0, (ny+1)/2
    1378                       work(2*j) = ar_tr(j,i,k)
    1379                    ENDDO
    1380                    DO  j = 1, (ny+1)/2 - 1
    1381                       work(2*j+1) = ar_tr(ny+1-j,i,k)
    1382                    ENDDO
    1383                    work(1)    = 0.0_wp
    1384                    work(ny+2) = 0.0_wp
    1385 
    1386                    CALL DCRFT( 0, work, 1, work, 1, ny+1, 1, -1, sqr_dny, auy3, nau1, auy4, nau2 )
    1387 
    1388                    DO  j = 0, ny
    1389                       ar(j,i,k) = work(j)
    1390                    ENDDO
    1391 
    1392                 ENDDO
    1393              ENDDO
    1394              !$OMP END PARALLEL
    1395 
    1396           ENDIF
    1397 #elif defined( __nec_fft )
     1239#if defined( __nec_fft )
    13981240          IF ( forward_fft )  THEN
    13991241
     
    15231365       COMPLEX(wp), DIMENSION(:), ALLOCATABLE ::  cwork  !<
    15241366
    1525 #if defined( __ibm )
    1526        REAL(wp), DIMENSION(nau2) ::  auy2  !<
    1527        REAL(wp), DIMENSION(nau2) ::  auy4  !<
    1528 #elif defined( __nec_fft )
     1367#if defined( __nec_fft )
    15291368       REAL(wp), DIMENSION(6*(ny+1)) ::  work2  !<
    15301369#endif
     
    16431482       ELSEIF ( fft_method == 'system-specific' )  THEN
    16441483
    1645 #if defined( __ibm )
    1646           IF ( forward_fft )  THEN
    1647 
    1648              CALL DRCFT( 0, ar, 1, work, 1, ny+1, 1, 1, sqr_dny, auy1, nau1, auy2, nau2 )
    1649 
    1650              DO  j = 0, (ny+1)/2
    1651                 ar(j) = work(2*j)
    1652              ENDDO
    1653              DO  j = 1, (ny+1)/2 - 1
    1654                 ar(ny+1-j) = work(2*j+1)
    1655              ENDDO
    1656 
    1657           ELSE
    1658 
    1659              DO  j = 0, (ny+1)/2
    1660                 work(2*j) = ar(j)
    1661              ENDDO
    1662              DO  j = 1, (ny+1)/2 - 1
    1663                 work(2*j+1) = ar(ny+1-j)
    1664              ENDDO
    1665              work(1)    = 0.0_wp
    1666              work(ny+2) = 0.0_wp
    1667 
    1668              CALL DCRFT( 0, work, 1, work, 1, ny+1, 1, -1, sqr_dny, auy3, nau1, auy4, nau2 )
    1669 
    1670              DO  j = 0, ny
    1671                 ar(j) = work(j)
    1672              ENDDO
    1673 
    1674           ENDIF
    1675 #elif defined( __nec_fft )
     1484#if defined( __nec_fft )
    16761485          IF ( forward_fft )  THEN
    16771486
  • palm/trunk/SOURCE/global_min_max.f90

    r4646 r4651  
    2323! -----------------
    2424! $Id$
     25! preprocessor branch for ibm removed
     26!
     27! 4646 2020-08-24 16:02:40Z raasch
    2528! file re-formatted to follow the PALM coding standard
    2629!
     
    8689    REAL(wp), OPTIONAL ::  value1  !<
    8790
    88     REAL(wp) ::  ar(i1:i2,j1:j2,k1:k2)  !<
    89 
    90 #if defined( __ibm )
    91     REAL(sp) ::  fmax(2)    !<
    92     REAL(sp) ::  fmax_l(2)  !<
    93     REAL(sp) ::  fmin(2)    !<
    94     REAL(sp) ::  fmin_l(2)  !<
    95              ! on 32bit-machines MPI_2REAL must not be replaced
    96              ! by MPI_2DOUBLE_PRECISION
    97 #else
    9891    REAL(wp), DIMENSION(2) ::  fmax    !<
    9992    REAL(wp), DIMENSION(2) ::  fmax_l  !<
    10093    REAL(wp), DIMENSION(2) ::  fmin    !<
    10194    REAL(wp), DIMENSION(2) ::  fmin_l  !<
    102 #endif
     95
     96    REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2) ::  ar  !<
    10397
    10498#if defined( _OPENACC )
  • palm/trunk/SOURCE/pres.f90

    r4649 r4651  
    2525! -----------------
    2626! $Id$
     27! preprocessor branch for ibm removed
     28!
     29! 4649 2020-08-25 12:11:17Z raasch
    2730! File re-formatted to follow the PALM coding standard
    2831!
     
    384387    threadsum = 0.0_wp
    385388
    386 #if defined( __ibm )
    387     !$OMP PARALLEL PRIVATE (i,j,k) FIRSTPRIVATE(threadsum) REDUCTION(+:localsum)
    388     !$OMP DO SCHEDULE( STATIC )
    389     DO  i = nxl, nxr
    390        DO  j = nys, nyn
    391           DO  k = nzb+1, nzt
    392              d(k,j,i) = ( ( u(k,j,i+1) - u(k,j,i) ) * rho_air(k) * ddx +                           &
    393                           ( v(k,j+1,i) - v(k,j,i) ) * rho_air(k) * ddy +                           &
    394                           ( w(k,j,i)   * rho_air_zw(k) - w(k-1,j,i) * rho_air_zw(k-1) )            &
    395                           * ddzw(k) )  * ddt_3d * d_weight_pres                                    &
    396                         * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    397           ENDDO
    398 !
    399 !--       Compute possible PE-sum of divergences for flow_statistics
    400           DO  k = nzb+1, nzt
    401              threadsum = threadsum + ABS( d(k,j,i) )                                               &
    402                          * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    403           ENDDO
    404 
    405        ENDDO
    406     ENDDO
    407 
    408     IF ( intermediate_timestep_count == intermediate_timestep_count_max  .OR.                      &
    409          intermediate_timestep_count == 0 )  THEN
    410        localsum = localsum + threadsum * dt_3d * weight_pres_l
    411     ENDIF
    412     !$OMP END PARALLEL
    413 #else
    414 
    415389    !$OMP PARALLEL PRIVATE (i,j,k)
    416390    !$OMP DO SCHEDULE( STATIC )
     
    451425       !$OMP END PARALLEL
    452426    ENDIF
    453 #endif
    454427
    455428!
     
    788761
    789762       !$OMP PARALLEL PRIVATE (i,j,k) FIRSTPRIVATE(threadsum) REDUCTION(+:localsum)
    790 #if defined( __ibm )
    791        !$OMP DO SCHEDULE( STATIC )
    792        DO  i = nxl, nxr
    793           DO  j = nys, nyn
    794              DO  k = nzb+1, nzt
    795              d(k,j,i) = ( ( u(k,j,i+1) - u(k,j,i) ) * rho_air(k) * ddx +                           &
    796                           ( v(k,j+1,i) - v(k,j,i) ) * rho_air(k) * ddy +                           &
    797                           ( w(k,j,i)   * rho_air_zw(k) - w(k-1,j,i) * rho_air_zw(k-1) )            &
    798                           * ddzw(k) )                                                              &
    799                         * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    800              ENDDO
    801              DO  k = nzb+1, nzt
    802                 threadsum = threadsum + ABS( d(k,j,i) )
    803              ENDDO
    804           ENDDO
    805        ENDDO
    806 #else
    807763       !$OMP DO SCHEDULE( STATIC )
    808764       !$ACC PARALLEL LOOP COLLAPSE(3) PRIVATE(i, j, k) &
     
    833789          ENDDO
    834790       ENDDO
    835 #endif
    836791
    837792       localsum = localsum + threadsum
Note: See TracChangeset for help on using the changeset viewer.