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 13553 for NEMO/branches/2020/dev_r13383_HPC-02_Daley_Tiling/src/OCE/DOM/domutl.F90 – NEMO

Ignore:
Timestamp:
2020-10-01T13:33:30+02:00 (4 years ago)
Author:
hadcv
Message:

Merge in trunk up to [13550]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13383_HPC-02_Daley_Tiling/src/OCE/DOM/domutl.F90

    r13514 r13553  
    5353      INTEGER , DIMENSION(2) ::   iloc 
    5454      REAL(wp)               ::   zlon, zmini 
    55       REAL(wp), DIMENSION(jpi,jpj) ::   zglam, zgphi, zmask, zdist 
     55      REAL(wp), DIMENSION(jpi,jpj) ::   zglam, zgphi, zdist 
     56      LOGICAL , DIMENSION(jpi,jpj) ::   llmsk 
    5657      !!-------------------------------------------------------------------- 
    5758      ! 
     
    5960      IF ( PRESENT(kkk) ) ik=kkk 
    6061      ! 
    61       CALL dom_uniq(zmask,cdgrid) 
    62       ! 
    6362      SELECT CASE( cdgrid ) 
    64       CASE( 'U' )    ;   zglam(:,:) = glamu(:,:)   ;   zgphi(:,:) = gphiu(:,:)   ;   zmask(:,:) = zmask(:,:) * umask(:,:,ik) 
    65       CASE( 'V' )    ;   zglam(:,:) = glamv(:,:)   ;   zgphi(:,:) = gphiv(:,:)   ;   zmask(:,:) = zmask(:,:) * vmask(:,:,ik) 
    66       CASE( 'F' )    ;   zglam(:,:) = glamf(:,:)   ;   zgphi(:,:) = gphif(:,:)   ;   zmask(:,:) = zmask(:,:) * fmask(:,:,ik) 
    67       CASE DEFAULT   ;   zglam(:,:) = glamt(:,:)   ;   zgphi(:,:) = gphit(:,:)   ;   zmask(:,:) = zmask(:,:) * tmask(:,:,ik) 
     63      CASE( 'U' ) ;   zglam(:,:) = glamu(:,:)   ;   zgphi(:,:) = gphiu(:,:)   ;   llmsk(:,:) = tmask_h(:,:) * umask(:,:,ik) == 1._wp 
     64      CASE( 'V' ) ;   zglam(:,:) = glamv(:,:)   ;   zgphi(:,:) = gphiv(:,:)   ;   llmsk(:,:) = tmask_h(:,:) * vmask(:,:,ik) == 1._wp 
     65      CASE( 'F' ) ;   zglam(:,:) = glamf(:,:)   ;   zgphi(:,:) = gphif(:,:)   ;   llmsk(:,:) = tmask_h(:,:) * fmask(:,:,ik) == 1._wp 
     66      CASE DEFAULT;   zglam(:,:) = glamt(:,:)   ;   zgphi(:,:) = gphit(:,:)   ;   llmsk(:,:) = tmask_h(:,:) * tmask(:,:,ik) == 1._wp 
    6867      END SELECT 
    6968      ! 
     
    7372      IF( zlon <  90. )   WHERE( zglam(:,:) > 180. ) zglam(:,:) = zglam(:,:) - 360.   ! glam between -180 and 180 
    7473      zglam(:,:) = zglam(:,:) - zlon 
    75  
     74      ! 
    7675      zgphi(:,:) = zgphi(:,:) - plat 
    7776      zdist(:,:) = zglam(:,:) * zglam(:,:) + zgphi(:,:) * zgphi(:,:) 
    78        
    79       IF( lk_mpp ) THEN   
    80          CALL mpp_minloc( 'domngb', zdist(:,:), zmask, zmini, iloc) 
    81          kii = iloc(1) ; kjj = iloc(2) 
    82       ELSE 
    83          iloc(:) = MINLOC( zdist(:,:), mask = zmask(:,:) == 1.e0 ) 
    84          kii = iloc(1) + nimpp - 1 
    85          kjj = iloc(2) + njmpp - 1 
    86       ENDIF 
     77      ! 
     78      CALL mpp_minloc( 'domngb', zdist(:,:), llmsk, zmini, iloc, ldhalo = .TRUE. ) 
     79      kii = iloc(1) 
     80      kjj = iloc(2) 
    8781      ! 
    8882   END SUBROUTINE dom_ngb 
Note: See TracChangeset for help on using the changeset viewer.