New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10314 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM – NEMO

Ignore:
Timestamp:
2018-11-15T17:27:18+01:00 (5 years 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

Location:
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM
Files:
4 edited

Legend:

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

    r10297 r10314  
    237237         surfe(:) = 0.e0_wp 
    238238         ! 
    239          surf(jncs+1) = glob_sum( e1e2t(:,:) )   ! surface of the global ocean 
     239         surf(jncs+1) = glob_sum( 'closea', e1e2t(:,:) )   ! surface of the global ocean 
    240240         ! 
    241241         !                                        ! surface areas of closed seas  
     
    243243            ztmp2d(:,:) = 0.e0_wp 
    244244            WHERE( closea_mask(:,:) == jc ) ztmp2d(:,:) = e1e2t(:,:) * tmask_i(:,:) 
    245             surf(jc) = glob_sum( ztmp2d(:,:) ) 
     245            surf(jc) = glob_sum( 'closea', ztmp2d(:,:) ) 
    246246         END DO 
    247247         ! 
     
    254254               ztmp2d(:,:) = 0.e0_wp 
    255255               WHERE( closea_mask_rnf(:,:) == jcr .and. closea_mask(:,:) == 0 ) ztmp2d(:,:) = e1e2t(:,:) * tmask_i(:,:) 
    256                surfr(jcr) = glob_sum( ztmp2d(:,:) ) 
     256               surfr(jcr) = glob_sum( 'closea', ztmp2d(:,:) ) 
    257257            END DO 
    258258         ENDIF 
     
    263263               ztmp2d(:,:) = 0.e0_wp 
    264264               WHERE( closea_mask_empmr(:,:) == jce .and. closea_mask(:,:) == 0 ) ztmp2d(:,:) = e1e2t(:,:) * tmask_i(:,:) 
    265                surfe(jce) = glob_sum( ztmp2d(:,:) ) 
     265               surfe(jce) = glob_sum( 'closea', ztmp2d(:,:) ) 
    266266            END DO 
    267267         ENDIF 
     
    301301         ztmp2d(:,:) = 0.e0_wp 
    302302         WHERE( closea_mask(:,:) == jc ) ztmp2d(:,:) = e1e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) 
    303          zfwf(jc) = glob_sum( ztmp2d(:,:) ) 
     303         zfwf(jc) = glob_sum( 'closea', ztmp2d(:,:) ) 
    304304      END DO 
    305305      zfwf_total = SUM(zfwf) 
     
    316316            ztmp2d(:,:) = 0.e0_wp 
    317317            WHERE( closea_mask_rnf(:,:) == jcr .and. closea_mask(:,:) > 0 ) ztmp2d(:,:) = e1e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) 
    318             zfwfr(jcr) = glob_sum( ztmp2d(:,:) ) 
     318            zfwfr(jcr) = glob_sum( 'closea', ztmp2d(:,:) ) 
    319319            ! 
    320320            ! The following if avoids the redistribution of the round off 
     
    345345            ztmp2d(:,:) = 0.e0_wp 
    346346            WHERE( closea_mask_empmr(:,:) == jce .and. closea_mask(:,:) > 0 ) ztmp2d(:,:) = e1e2t(:,:) * ( emp(:,:)-rnf(:,:) ) * tmask_i(:,:) 
    347             zfwfe(jce) = glob_sum( ztmp2d(:,:) ) 
     347            zfwfe(jce) = glob_sum( 'closea', ztmp2d(:,:) ) 
    348348            ! 
    349349            ! The following if avoids the redistribution of the round off 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/domain.F90

    r10068 r10314  
    469469      !! ** Method  :   compute and print extrema of masked scale factors 
    470470      !!---------------------------------------------------------------------- 
    471       INTEGER ::   iimi1, ijmi1, iimi2, ijmi2, iima1, ijma1, iima2, ijma2 
     471      INTEGER, DIMENSION(2) ::   imi1, imi2, ima1, ima2 
    472472      INTEGER, DIMENSION(2) ::   iloc   !  
    473473      REAL(wp) ::   ze1min, ze1max, ze2min, ze2max 
     
    475475      ! 
    476476      IF(lk_mpp) THEN 
    477          CALL mpp_minloc( e1t(:,:), tmask_i(:,:), ze1min, iimi1,ijmi1 ) 
    478          CALL mpp_minloc( e2t(:,:), tmask_i(:,:), ze2min, iimi2,ijmi2 ) 
    479          CALL mpp_maxloc( e1t(:,:), tmask_i(:,:), ze1max, iima1,ijma1 ) 
    480          CALL mpp_maxloc( e2t(:,:), tmask_i(:,:), ze2max, iima2,ijma2 ) 
     477         CALL mpp_minloc( 'domain', e1t(:,:), tmask_i(:,:), ze1min, imi1 ) 
     478         CALL mpp_minloc( 'domain', e2t(:,:), tmask_i(:,:), ze2min, imi2 ) 
     479         CALL mpp_maxloc( 'domain', e1t(:,:), tmask_i(:,:), ze1max, ima1 ) 
     480         CALL mpp_maxloc( 'domain', e2t(:,:), tmask_i(:,:), ze2max, ima2 ) 
    481481      ELSE 
    482482         ze1min = MINVAL( e1t(:,:), mask = tmask_i(:,:) == 1._wp )     
     
    486486         ! 
    487487         iloc  = MINLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 
    488          iimi1 = iloc(1) + nimpp - 1 
    489          ijmi1 = iloc(2) + njmpp - 1 
     488         imi1(1) = iloc(1) + nimpp - 1 
     489         imi1(2) = iloc(2) + njmpp - 1 
    490490         iloc  = MINLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 
    491          iimi2 = iloc(1) + nimpp - 1 
    492          ijmi2 = iloc(2) + njmpp - 1 
     491         imi2(1) = iloc(1) + nimpp - 1 
     492         imi2(2) = iloc(2) + njmpp - 1 
    493493         iloc  = MAXLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 
    494          iima1 = iloc(1) + nimpp - 1 
    495          ijma1 = iloc(2) + njmpp - 1 
     494         ima1(1) = iloc(1) + nimpp - 1 
     495         ima1(2) = iloc(2) + njmpp - 1 
    496496         iloc  = MAXLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 
    497          iima2 = iloc(1) + nimpp - 1 
    498          ijma2 = iloc(2) + njmpp - 1 
     497         ima2(1) = iloc(1) + nimpp - 1 
     498         ima2(2) = iloc(2) + njmpp - 1 
    499499      ENDIF 
    500500      IF(lwp) THEN 
     
    502502         WRITE(numout,*) 'dom_ctl : extrema of the masked scale factors' 
    503503         WRITE(numout,*) '~~~~~~~' 
    504          WRITE(numout,"(14x,'e1t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1max, iima1, ijma1 
    505          WRITE(numout,"(14x,'e1t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1min, iimi1, ijmi1 
    506          WRITE(numout,"(14x,'e2t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2max, iima2, ijma2 
    507          WRITE(numout,"(14x,'e2t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2min, iimi2, ijmi2 
     504         WRITE(numout,"(14x,'e1t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1max, ima1(1), ima1(2) 
     505         WRITE(numout,"(14x,'e1t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1min, imi1(1), imi1(2) 
     506         WRITE(numout,"(14x,'e2t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2max, ima2(1), ima2(2) 
     507         WRITE(numout,"(14x,'e2t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2min, imi2(1), imi2(2) 
    508508      ENDIF 
    509509      ! 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/domngb.F90

    r10068 r10314  
    6767       
    6868      IF( lk_mpp ) THEN   
    69          CALL mpp_minloc( zdist(:,:), zmask, zmini, kii, kjj) 
     69         CALL mpp_minloc( 'domngb', zdist(:,:), zmask, zmini, iloc) 
     70         kii = iloc(1) ; kjj = iloc(2) 
    7071      ELSE 
    7172         iloc(:) = MINLOC( zdist(:,:), mask = zmask(:,:) == 1.e0 ) 
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/domvvl.F90

    r10297 r10314  
    435435         IF( ( z_tmax >  rn_zdef_max ) .OR. ( z_tmin < - rn_zdef_max ) ) THEN 
    436436            IF( lk_mpp ) THEN 
    437                CALL mpp_maxloc( ze3t, tmask, z_tmax, ijk_max(1), ijk_max(2), ijk_max(3) ) 
    438                CALL mpp_minloc( ze3t, tmask, z_tmin, ijk_min(1), ijk_min(2), ijk_min(3) ) 
     437               CALL mpp_maxloc( 'domvvl', ze3t, tmask, z_tmax, ijk_max ) 
     438               CALL mpp_minloc( 'domvvl', ze3t, tmask, z_tmin, ijk_min ) 
    439439            ELSE 
    440440               ijk_max = MAXLOC( ze3t(:,:,:) ) 
Note: See TracChangeset for help on using the changeset viewer.