Ignore:
Timestamp:
2020-07-02T17:33:41+02:00 (3 months ago)
Author:
francesca
Message:

dev_r12558_HPC-08_epico_Extra_Halo: merge with trunk@13218, see #2366

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/NST/agrif_oce_sponge.F90

    r13065 r13229  
    131131 
    132132         ! --- West --- ! 
    133          ztabramp(:,:) = 0._wp 
    134          ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    135          DO ji = mi0(ind1), mi1(ind1)                 
    136             ztabramp(ji,:) = ssumask(ji,:) 
    137          END DO 
    138          ! 
    139          zmskwest(1:jpj) = MAXVAL(ztabramp(:,:), dim=1) 
    140          zmskwest(jpj+1:jpjmax) = 0._wp 
     133         IF( lk_west ) THEN 
     134            ztabramp(:,:) = 0._wp 
     135            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     136            DO ji = mi0(ind1), mi1(ind1)                 
     137               ztabramp(ji,:) = ssumask(ji,:) 
     138            END DO 
     139            ! 
     140            zmskwest(1:jpj) = MAXVAL(ztabramp(:,:), dim=1) 
     141            zmskwest(jpj+1:jpjmax) = 0._wp 
     142         ENDIF 
    141143 
    142144         ! --- East --- ! 
    143          ztabramp(:,:) = 0._wp 
    144          ind1 = jpiglo - ( nn_hls + nbghostcells + 1)   ! halo + land + nbghostcells 
    145          DO ji = mi0(ind1), mi1(ind1)                  
    146             ztabramp(ji,:) = ssumask(ji,:) 
    147          END DO 
    148          ! 
    149          zmskeast(1:jpj) = MAXVAL(ztabramp(:,:), dim=1) 
    150          zmskeast(jpj+1:jpjmax) = 0._wp 
     145         IF( lk_east ) THEN 
     146            ztabramp(:,:) = 0._wp 
     147            ind1 = jpiglo - ( nn_hls + nbghostcells + 1)   ! halo + land + nbghostcells 
     148            DO ji = mi0(ind1), mi1(ind1)                  
     149               ztabramp(ji,:) = ssumask(ji,:) 
     150            END DO 
     151            ! 
     152            zmskeast(1:jpj) = MAXVAL(ztabramp(:,:), dim=1) 
     153            zmskeast(jpj+1:jpjmax) = 0._wp 
     154         ENDIF 
    151155 
    152156         ! --- South --- ! 
    153          ztabramp(:,:) = 0._wp 
    154          ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    155          DO jj = mj0(ind1), mj1(ind1)                  
    156             ztabramp(:,jj) = ssvmask(:,jj) 
    157          END DO 
    158          ! 
    159          zmsksouth(1:jpi) = MAXVAL(ztabramp(:,:), dim=2) 
    160          zmsksouth(jpi+1:jpimax) = 0._wp 
     157         IF( lk_south ) THEN 
     158            ztabramp(:,:) = 0._wp 
     159            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     160            DO jj = mj0(ind1), mj1(ind1)                  
     161               ztabramp(:,jj) = ssvmask(:,jj) 
     162            END DO 
     163            ! 
     164            zmsksouth(1:jpi) = MAXVAL(ztabramp(:,:), dim=2) 
     165            zmsksouth(jpi+1:jpimax) = 0._wp 
     166         ENDIF 
    161167 
    162168         ! --- North --- ! 
    163          ztabramp(:,:) = 0._wp 
    164          ind1 = jpjglo - ( nn_hls + nbghostcells + 1)   ! halo + land + nbghostcells 
    165          DO jj = mj0(ind1), mj1(ind1)                  
    166             ztabramp(:,jj) = ssvmask(:,jj) 
    167          END DO 
    168          ! 
    169          zmsknorth(1:jpi) = MAXVAL(ztabramp(:,:), dim=2) 
    170          zmsknorth(jpi+1:jpimax) = 0._wp 
     169         IF( lk_north ) THEN 
     170            ztabramp(:,:) = 0._wp 
     171            ind1 = jpjglo - ( nn_hls + nbghostcells + 1)   ! halo + land + nbghostcells 
     172            DO jj = mj0(ind1), mj1(ind1)                  
     173               ztabramp(:,jj) = ssvmask(:,jj) 
     174            END DO 
     175            ! 
     176            zmsknorth(1:jpi) = MAXVAL(ztabramp(:,:), dim=2) 
     177            zmsknorth(jpi+1:jpimax) = 0._wp 
     178         ENDIF 
    171179 
    172180         ! JC: SPONGE MASKING TO BE SORTED OUT: 
     
    197205 
    198206         ! --- West --- ! 
    199          ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    200          ind2 = nn_hls + 1 + nbghostcells + ispongearea  
    201          DO ji = mi0(ind1), mi1(ind2)    
    202             DO jj = 1, jpj                
    203                ztabramp(ji,jj) = REAL( ind2 - mig(ji) ) * z1_ispongearea * zmskwest(jj) 
    204             END DO 
    205          END DO 
    206  
    207          ! ghost cells: 
    208          ind1 = 1 
    209          ind2 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    210          DO ji = mi0(ind1), mi1(ind2)    
    211             DO jj = 1, jpj                
    212                ztabramp(ji,jj) = zmskwest(jj) 
    213             END DO 
    214          END DO 
     207         IF( lk_west ) THEN 
     208            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     209            ind2 = nn_hls + 1 + nbghostcells + ispongearea  
     210            DO ji = mi0(ind1), mi1(ind2)    
     211               DO jj = 1, jpj                
     212                  ztabramp(ji,jj) = REAL( ind2 - mig(ji) ) * z1_ispongearea * zmskwest(jj) 
     213               END DO 
     214            END DO 
     215 
     216            ! ghost cells: 
     217            ind1 = 1 
     218            ind2 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     219            DO ji = mi0(ind1), mi1(ind2)    
     220               DO jj = 1, jpj                
     221                  ztabramp(ji,jj) = zmskwest(jj) 
     222               END DO 
     223            END DO 
     224         ENDIF 
    215225 
    216226         ! --- East --- ! 
    217          ind1 = jpiglo - ( nn_hls + nbghostcells ) - ispongearea 
    218          ind2 = jpiglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
    219          DO ji = mi0(ind1), mi1(ind2) 
    220             DO jj = 1, jpj 
    221                ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mig(ji) - ind1 ) * z1_ispongearea) * zmskeast(jj) 
    222             ENDDO 
    223          END DO 
    224  
    225          ! ghost cells: 
    226          ind1 = jpiglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
    227          ind2 = jpiglo 
    228          DO ji = mi0(ind1), mi1(ind2) 
    229             DO jj = 1, jpj 
    230                ztabramp(ji,jj) = zmskeast(jj) 
    231             ENDDO 
    232          END DO 
     227         IF( lk_east ) THEN 
     228            ind1 = jpiglo - ( nn_hls + nbghostcells ) - ispongearea 
     229            ind2 = jpiglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
     230            DO ji = mi0(ind1), mi1(ind2) 
     231               DO jj = 1, jpj 
     232                  ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mig(ji) - ind1 ) * z1_ispongearea) * zmskeast(jj) 
     233               ENDDO 
     234            END DO 
     235 
     236            ! ghost cells: 
     237            ind1 = jpiglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
     238            ind2 = jpiglo 
     239            DO ji = mi0(ind1), mi1(ind2) 
     240               DO jj = 1, jpj 
     241                  ztabramp(ji,jj) = zmskeast(jj) 
     242               ENDDO 
     243            END DO 
     244         ENDIF 
    233245 
    234246         ! --- South --- ! 
    235          ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    236          ind2 = nn_hls + 1 + nbghostcells + jspongearea  
    237          DO jj = mj0(ind1), mj1(ind2)  
    238             DO ji = 1, jpi 
    239                ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( ind2 - mjg(jj) ) * z1_jspongearea) * zmsksouth(ji) 
    240             END DO 
    241          END DO 
    242  
    243          ! ghost cells: 
    244          ind1 = 1 
    245          ind2 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    246          DO jj = mj0(ind1), mj1(ind2)  
    247             DO ji = 1, jpi 
    248                ztabramp(ji,jj) = zmsksouth(ji) 
    249             END DO 
    250          END DO 
     247         IF( lk_south ) THEN 
     248            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     249            ind2 = nn_hls + 1 + nbghostcells + jspongearea  
     250            DO jj = mj0(ind1), mj1(ind2)  
     251               DO ji = 1, jpi 
     252                  ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( ind2 - mjg(jj) ) * z1_jspongearea) * zmsksouth(ji) 
     253               END DO 
     254            END DO 
     255 
     256            ! ghost cells: 
     257            ind1 = 1 
     258            ind2 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     259            DO jj = mj0(ind1), mj1(ind2)  
     260               DO ji = 1, jpi 
     261                  ztabramp(ji,jj) = zmsksouth(ji) 
     262               END DO 
     263            END DO 
     264         ENDIF 
    251265 
    252266         ! --- North --- ! 
    253          ind1 = jpjglo - ( nn_hls + nbghostcells ) - jspongearea 
    254          ind2 = jpjglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
    255          DO jj = mj0(ind1), mj1(ind2) 
    256             DO ji = 1, jpi 
    257                ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mjg(jj) - ind1 ) * z1_jspongearea) * zmsknorth(ji) 
    258             END DO 
    259          END DO 
    260  
    261          ! ghost cells: 
    262          ind1 = jpjglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
    263          ind2 = jpjglo 
    264          DO jj = mj0(ind1), mj1(ind2) 
    265             DO ji = 1, jpi 
    266                ztabramp(ji,jj) = zmsknorth(ji) 
    267             END DO 
    268          END DO 
     267         IF( lk_north ) THEN 
     268            ind1 = jpjglo - ( nn_hls + nbghostcells ) - jspongearea 
     269            ind2 = jpjglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
     270            DO jj = mj0(ind1), mj1(ind2) 
     271               DO ji = 1, jpi 
     272                  ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mjg(jj) - ind1 ) * z1_jspongearea) * zmsknorth(ji) 
     273               END DO 
     274            END DO 
     275 
     276            ! ghost cells: 
     277            ind1 = jpjglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
     278            ind2 = jpjglo 
     279            DO jj = mj0(ind1), mj1(ind2) 
     280               DO ji = 1, jpi 
     281                  ztabramp(ji,jj) = zmsknorth(ji) 
     282               END DO 
     283            END DO 
     284         ENDIF 
    269285 
    270286      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.