Changeset 5831 for LMDZ6


Ignore:
Timestamp:
Sep 24, 2025, 12:07:20 PM (2 months ago)
Author:
rkazeroni
Message:

Finish GPU porting work on ratqs_main:

  • Computation of resolmax takes parallelization into account using reduce_max (variable now defined as resolmax_glo)


File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90

    r5826 r5831  
    33  PRIVATE
    44
    5   LOGICAL, SAVE :: first=.TRUE.  ! fisrt call to ratqs_main
     5  LOGICAL, SAVE :: first=.TRUE.  ! first call to ratqs_main
    66  !$OMP THREADPRIVATE(first)
    77
    8   REAL, SAVE :: resolmax
    9   !$OMP THREADPRIVATE(resolmax)
     8  REAL, SAVE :: resolmax_glo
     9  !$OMP THREADPRIVATE(resolmax_glo)
    1010
    1111  PUBLIC ratqs_main_first, ratqs_main
     
    1414
    1515SUBROUTINE ratqs_main_first(klon, cell_area)
    16 
     16  USE mod_phys_lmdz_para
    1717  IMPLICIT NONE
    1818  INTEGER, INTENT(in) :: klon
    1919  REAL, DIMENSION(klon), INTENT(in) :: cell_area
     20  REAL :: resolmax
    2021
    2122  IF (first) THEN
    2223     resolmax=sqrt(maxval(cell_area))
     24     CALL reduce_max(resolmax, resolmax_glo)
     25     CALL bcast(resolmax_glo)
    2326     first = .FALSE.
    2427  END IF
     
    190193            do i=1,klon
    191194              resol=sqrt(cell_area(i))
    192               fact = sqrt(resol/resolmax)
     195              fact = sqrt(resol/resolmax_glo)
    193196              ratqss(i,k)=ratqsbas*fact+0.5*(ratqshaut-ratqsbas)*fact &
    194197              *( tanh( (ratqsp0-pplay(i,k))/ratqsdp) + 1.)
Note: See TracChangeset for help on using the changeset viewer.