Ignore:
Timestamp:
2018-11-15T17:27:18+01:00 (23 months ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 2: add generic glob_min/max/sum and locmin/max, complete timing and report (including bdy and icb), see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/stpctl.F90

    r10068 r10314  
    6161      !! 
    6262      INTEGER  ::   ji, jj, jk             ! dummy loop indices 
    63       INTEGER  ::   iih, ijh               ! local integers 
    64       INTEGER  ::   iiu, iju, iku          !   -       - 
    65       INTEGER  ::   iis1, ijs1, iks1       !   -       - 
    66       INTEGER  ::   iis2, ijs2, iks2       !   -       - 
     63      INTEGER  ::   ih(2)                  ! local integers 
     64      INTEGER  ::   iu(3)                  !   -       - 
     65      INTEGER  ::   is1(3)                 !   -       - 
     66      INTEGER  ::   is2(3)                 !   -       - 
    6767      REAL(wp) ::   zzz                    ! local real  
    6868      INTEGER , DIMENSION(3) ::   ilocu, ilocs1, ilocs2 
     
    112112      ! 
    113113      IF( lk_mpp ) THEN 
    114          CALL mpp_max_multiple( zmax(:), 5 )    ! max over the global domain 
     114         CALL mpp_max( "stpctl", zmax )    ! max over the global domain 
    115115         ! 
    116116         nstop = NINT( zmax(5) )                 ! nstop indicator sheared among all local domains 
     
    129129         &  ISNAN( zmax(1) + zmax(2) + zmax(3) )  ) THEN   ! NaN encounter in the tests 
    130130         IF( lk_mpp ) THEN 
    131             CALL mpp_maxloc( ABS(sshn)        , ssmask(:,:)  , zzz, iih , ijh        ) 
    132             CALL mpp_maxloc( ABS(un)          , umask (:,:,:), zzz, iiu , iju , iku  ) 
    133             CALL mpp_minloc( tsn(:,:,:,jp_sal), tmask (:,:,:), zzz, iis1, ijs1, iks1 ) 
    134             CALL mpp_maxloc( tsn(:,:,:,jp_sal), tmask (:,:,:), zzz, iis2, ijs2, iks2 ) 
     131            CALL mpp_maxloc( 'stpctl', ABS(sshn)        , ssmask(:,:)  , zzz, ih  ) 
     132            CALL mpp_maxloc( 'stpctl', ABS(un)          , umask (:,:,:), zzz, iu  ) 
     133            CALL mpp_minloc( 'stpctl', tsn(:,:,:,jp_sal), tmask (:,:,:), zzz, is1 ) 
     134            CALL mpp_maxloc( 'stpctl', tsn(:,:,:,jp_sal), tmask (:,:,:), zzz, is2 ) 
    135135         ELSE 
    136136            iloch  = MINLOC( ABS( sshn(:,:)   )                               ) 
     
    138138            ilocs1 = MINLOC( tsn(:,:,:,jp_sal) , mask = tmask(:,:,:) == 1._wp ) 
    139139            ilocs2 = MAXLOC( tsn(:,:,:,jp_sal) , mask = tmask(:,:,:) == 1._wp ) 
    140             iih  = iloch (1) + nimpp - 1   ;   ijh  = iloch (2) + njmpp - 1 
    141             iiu  = ilocu (1) + nimpp - 1   ;   iju  = ilocu (2) + njmpp - 1   ;   iku  = ilocu (3) 
    142             iis1 = ilocs1(1) + nimpp - 1   ;   ijs1 = ilocs1(2) + njmpp - 1   ;   iks1 = ilocs1(3) 
    143             iis2 = ilocs2(1) + nimpp - 1   ;   ijs2 = ilocs2(2) + njmpp - 1   ;   iks2 = ilocs2(3) 
     140            ih(1)  = iloch (1) + nimpp - 1   ;   ih(2)  = iloch (2) + njmpp - 1 
     141            iu(1)  = ilocu (1) + nimpp - 1   ;   iu(2)  = ilocu (2) + njmpp - 1   ;   iu(3)  = ilocu (3) 
     142            is1(1) = ilocs1(1) + nimpp - 1   ;   is1(2) = ilocs1(2) + njmpp - 1   ;   is1(3) = ilocs1(3) 
     143            is2(1) = ilocs2(1) + nimpp - 1   ;   is2(2) = ilocs2(2) + njmpp - 1   ;   is2(3) = ilocs2(3) 
    144144         ENDIF 
    145145         IF(lwp) THEN 
     
    147147            WRITE(numout,*) ' stp_ctl: |ssh| > 10 m  or  |U| > 10 m/s  or  S <= 0  or  S >= 100  or  NaN encounter in the tests' 
    148148            WRITE(numout,*) ' ======= ' 
    149             WRITE(numout,9100) kt,   zmax(1), iih , ijh 
    150             WRITE(numout,9200) kt,   zmax(2), iiu , iju , iku 
    151             WRITE(numout,9300) kt, - zmax(3), iis1, ijs1, iks1 
    152             WRITE(numout,9400) kt,   zmax(4), iis2, ijs2, iks2 
     149            WRITE(numout,9100) kt,   zmax(1), ih(1) , ih(2) 
     150            WRITE(numout,9200) kt,   zmax(2), iu(1) , iu(2) , iu(3) 
     151            WRITE(numout,9300) kt, - zmax(3), is1(1), is1(2), is1(3) 
     152            WRITE(numout,9400) kt,   zmax(4), is2(1), is2(2), is2(3) 
    153153            WRITE(numout,*) 
    154154            WRITE(numout,*) '          output of last computed fields in output.abort.nc file' 
Note: See TracChangeset for help on using the changeset viewer.