Ignore:
Timestamp:
2020-04-10T19:55:11+02:00 (8 months ago)
Author:
jchanut
Message:

Fixes AGRIF reproductibility with land processors removal, i.e. #2240. Trunk is not concerned by this problem since nbondi/nbondj variables are not used anymore.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/releases/r4.0/r4.0-HEAD/src/OCE/LBC/mppini.F90

    r11640 r12737  
    9090      l_Jperio = jpnj == 1 .AND. (jperio == 2 .OR. jperio == 7) 
    9191      ! 
     92      ! Set flags to detect global domain edges for AGRIF 
     93      l_Westedge = .true. ; l_Eastedge = .true. ; l_Northedge = .true.; l_Southedge = .true. 
     94      ! 
    9295      IF(lwp) THEN 
    9396         WRITE(numout,*) 
     
    162165      INTEGER, ALLOCATABLE, DIMENSION(:,:) ::   ilej, ildj, ioso, iowe         !  -     - 
    163166      LOGICAL, ALLOCATABLE, DIMENSION(:,:) ::   llisoce                        !  -     - 
     167      LOGICAL, ALLOCATABLE, DIMENSION(:,:) ::   lliswest, lliseast, llisnorth, llissouth  !  -     - 
    164168      NAMELIST/nambdy/ ln_bdy, nb_bdy, ln_coords_file, cn_coords_file,           & 
    165169           &             ln_mask_file, cn_mask_file, cn_dyn2d, nn_dyn2d_dta,     & 
     
    331335         &       ilei(jpni,jpnj), ildi(jpni,jpnj), iono(jpni,jpnj), ioea(jpni,jpnj),   & 
    332336         &       ilej(jpni,jpnj), ildj(jpni,jpnj), ioso(jpni,jpnj), iowe(jpni,jpnj),   & 
     337#if defined key_agrif 
     338                 lliswest(jpni,jpnj), lliseast(jpni,jpnj),  &  
     339         &       llisnorth(jpni,jpnj),llissouth(jpni,jpnj), & 
     340#endif 
    333341         &       STAT=ierr ) 
    334342      CALL mpp_sum( 'mppini', ierr ) 
     
    343351         IF( ln_use_jattr )   CALL ctl_stop( 'STOP', 'mpp_init:Agrif children requires ln_use_jattr = .false. ' ) 
    344352      ENDIF 
     353      lliswest(:,:) = .false. ; lliseast(:,:) = .false. ; llisnorth(:,:) = .false. ; llissouth(:,:) = .false. 
    345354#endif 
    346355      ! 
     
    430439         ENDIF 
    431440         ! 
     441#if defined key_agrif 
     442         IF ((ibondi(ii,ij) ==  1).OR.(ibondi(ii,ij) == 2)) lliseast(ii,ij)  = .true.      ! east  
     443         IF ((ibondi(ii,ij) == -1).OR.(ibondi(ii,ij) == 2)) lliswest(ii,ij)  = .true.      ! west  
     444         IF ((ibondj(ii,ij) ==  1).OR.(ibondj(ii,ij) == 2)) llisnorth(ii,ij) = .true.      ! north  
     445         IF ((ibondj(ii,ij) == -1).OR.(ibondj(ii,ij) == 2)) llissouth(ii,ij) = .true.      ! south  
     446#endif 
    432447      END DO 
    433  
    434448      ! 4. deal with land subdomains 
    435449      ! ---------------------------- 
     
    601615      ! Suppress once vertical online interpolation is ok 
    602616!!$      IF(.NOT.Agrif_Root())   jpkglo = Agrif_Parent( jpkglo ) 
     617      l_Westedge  = lliswest(ii,ij) 
     618      l_Eastedge  = lliseast(ii,ij) 
     619      l_Northedge = llisnorth(ii,ij) 
     620      l_Southedge = llissouth(ii,ij)  
    603621#endif 
    604622      jpim1 = jpi-1                                            ! inner domain indices 
     
    716734         &       ilci, ilcj, ilei, ilej, ildi, ildj,              & 
    717735         &       iono, ioea, ioso, iowe, llisoce) 
     736#if defined key_agrif 
     737      DEALLOCATE(lliswest, lliseast, llisnorth, llissouth) 
     738#endif 
    718739      ! 
    719740    END SUBROUTINE mpp_init 
Note: See TracChangeset for help on using the changeset viewer.