Ignore:
Timestamp:
Sep 30, 2020 10:27:40 PM (4 years ago)
Author:
pavelkrc
Message:

Fixes and optimizations of OpenMP parallelization, formatting of OpenMP directives

File:
1 edited

Legend:

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

    r4716 r4717  
    2525! -----------------
    2626! $Id$
     27! Fixes and optimizations of OpenMP parallelization, formatting of OpenMP
     28! directives (J. Resler)
     29!
     30! 4716 2020-09-30 22:06:37Z pavelkrc
    2731! Revert change at water surfaces (previous)
    2832!
     
    17441748    i_off = surf%ioff
    17451749
    1746     !$OMP PARALLEL PRIVATE (m, i, j, k, lambda_h_sat, ke, lambda_soil, lambda_surface, ueff,       &
    1747     !$OMP&                  c_surface_tmp, f1,m_total, f2, e_s, e, f3, m_min, m_liq_max, q_s,      &
    1748     !$OMP&                  f_qsws_veg, f_qsws_soil, f_qsws_liq, f_shf, f_qsws, e_s_dt, dq_s_dt,   &
    1749     !$OMP&                  coef_1, coef_2, tend)
    1750     !$OMP DO SCHEDULE (STATIC)
     1750    !$OMP PARALLEL DO PRIVATE (m, i, j, k, lambda_h_sat, ke, lambda_soil, lambda_surface, ueff,    &
     1751    !$OMP&                     c_surface_tmp, f1,m_total, f2, e_s, e, f3, m_min, m_liq_max, q_s,   &
     1752    !$OMP&                     f_qsws_veg, f_qsws_soil, f_qsws_liq, f_shf, f_qsws, e_s_dt, dq_s_dt,&
     1753    !$OMP&                     coef_1, coef_2, tend) SCHEDULE (STATIC)
    17511754    DO  m = 1, surf%ns
    17521755
     
    21092112       surf%shf(m) = - f_shf * ( surf%pt1(m) - surf%pt_surface(m) ) / c_p
    21102113!
    2111 ! update the 3d field of rad_lw_out array to have consistent output
     2114!--    update the 3d field of rad_lw_out array to have consistent output
    21122115       IF ( upward )  THEN
    21132116          IF ( radiation_scheme == 'rrtmg' ) THEN
     
    22462249
    22472250    ENDDO
    2248     !$OMP END PARALLEL
    22492251
    22502252!
     
    22942296       REAL(wp) ::  resistance    !< aerodynamic and soil resistance term
    22952297
    2296 
    2297        !$OMP PARALLEL PRIVATE (m, i, j, k, e_s, q_s, resistance)
    2298        !$OMP DO SCHEDULE (STATIC)
     2298       !$OMP PARALLEL DO PRIVATE (m, i, j, k, e_s, q_s, resistance) SCHEDULE (STATIC)
    22992299       DO  m = 1, surf%ns
    23002300
     
    23302330                                  ( 1.0_wp + 0.61_wp * surf%q_surface(m) )
    23312331
    2332 
    2333 
    23342332       ENDDO
    2335        !$OMP END PARALLEL
    23362333
    23372334    END SUBROUTINE calc_q_surface
     
    55555552       ENDIF
    55565553
    5557        !$OMP PARALLEL PRIVATE (m, k, lambda_temp, lambda_h_sat, ke, tend, gamma_temp, h_vg,       &
    5558        !$OMP&                  m_total, root_extr)
    5559        !$OMP DO SCHEDULE (STATIC)
     5554       !$OMP PARALLEL DO PRIVATE (m, k, lambda_temp, lambda_h_sat, ke, tend, gamma_temp, h_vg,    &
     5555       !$OMP&                     m_total, root_extr) SCHEDULE (STATIC)
    55605556       DO  m = 1, surf%ns
    55615557
     
    58275823
    58285824       ENDDO
    5829        !$OMP END PARALLEL
    58305825!
    58315826!--    Debug location message
     
    77607755!       REAL(wp) :: re_0 !< near-surface roughness Reynolds number
    77617756
    7762        !$OMP DO PRIVATE (m, i, j) SCHEDULE (STATIC) REDUCTION(.OR.:flag_exceed_z0, flag_exceed_z0h)
     7757       !$OMP PARALLEL DO PRIVATE (m, i, j) SCHEDULE (STATIC)                                      &
     7758       !$OMP&            REDUCTION(.OR.:flag_exceed_z0, flag_exceed_z0h)
    77637759       DO  m = 1, surf_lsm_h(0)%ns
    77647760!--       only upward facin horizontal surfaces are considered for water surface processing
     
    78207816          ENDIF
    78217817       ENDDO
    7822        !$OMP END DO
    78237818#if defined( __parallel )
    78247819       CALL MPI_ALLREDUCE( MPI_IN_PLACE, flag_exceed_z0, 1, MPI_LOGICAL,       &
Note: See TracChangeset for help on using the changeset viewer.