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 13251 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/NST/agrif_oce_sponge.F90 – NEMO

Ignore:
Timestamp:
2020-07-05T16:59:00+02:00 (4 years ago)
Author:
smasson
Message:

Extra_Halo: bugfix following 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

    r13232 r13251  
    7878      zcoef = REAL(Agrif_rhot()-1,wp)/REAL(Agrif_rhot()) 
    7979 
    80       Agrif_SpecialValue=0. 
     80      Agrif_SpecialValue    = 0._wp 
    8181      Agrif_UseSpecialValue = ln_spc_dyn 
    82       use_sign_north = .TRUE. 
    83       sign_north = -1. 
     82      use_sign_north        = .TRUE. 
     83      sign_north            = -1._wp 
    8484      ! 
    8585      tabspongedone_u = .FALSE. 
     
    9292      ! 
    9393      Agrif_UseSpecialValue = .FALSE. 
    94       use_sign_north = .FALSE. 
     94      use_sign_north        = .FALSE. 
    9595#endif 
    9696      ! 
     
    109109      REAL(wp) ::   z1_ispongearea, z1_jspongearea 
    110110      REAL(wp), DIMENSION(jpi,jpj) :: ztabramp 
     111#if defined key_vertical 
     112      REAL(wp), DIMENSION(jpi,jpj) :: ztabrampu 
     113      REAL(wp), DIMENSION(jpi,jpj) :: ztabrampv 
     114#endif 
    111115      REAL(wp), DIMENSION(jpjmax)  :: zmskwest,  zmskeast 
    112116      REAL(wp), DIMENSION(jpimax)  :: zmsknorth, zmsksouth 
     
    129133         ! Retrieve masks at open boundaries: 
    130134 
    131          ! --- West --- ! 
    132          IF( lk_west) THEN 
     135         IF( lk_west ) THEN                             ! --- West --- ! 
    133136            ztabramp(:,:) = 0._wp 
    134137            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     
    139142            zmskwest(jpj+1:jpjmax) = 0._wp 
    140143         ENDIF 
    141  
    142          ! --- East --- ! 
    143          IF( lk_east ) THEN 
     144         IF( lk_east ) THEN                             ! --- East --- ! 
    144145            ztabramp(:,:) = 0._wp 
    145146            ind1 = jpiglo - ( nn_hls + nbghostcells + 1)   ! halo + land + nbghostcells 
     
    150151            zmskeast(jpj+1:jpjmax) = 0._wp 
    151152         ENDIF 
    152  
    153          ! --- South --- ! 
    154          IF( lk_south ) THEN 
     153         IF( lk_south ) THEN                            ! --- South --- ! 
    155154            ztabramp(:,:) = 0._wp 
    156155            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
     
    161160            zmsksouth(jpi+1:jpimax) = 0._wp 
    162161         ENDIF 
    163  
    164          ! --- North --- ! 
    165          IF( lk_north) THEN 
     162         IF( lk_north ) THEN                            ! --- North --- ! 
    166163            ztabramp(:,:) = 0._wp 
    167164            ind1 = jpjglo - ( nn_hls + nbghostcells + 1)   ! halo + land + nbghostcells 
     
    188185         ! Store it in ztabramp 
    189186 
    190          ispongearea  = nn_sponge_len * Agrif_irhox() 
    191          z1_ispongearea = 1._wp / REAL( ispongearea ) 
    192          jspongearea  = nn_sponge_len * Agrif_irhoy() 
    193          z1_jspongearea = 1._wp / REAL( jspongearea ) 
     187         ispongearea    = nn_sponge_len * Agrif_irhox() 
     188         z1_ispongearea = 1._wp / REAL( ispongearea, wp ) 
     189         jspongearea    = nn_sponge_len * Agrif_irhoy() 
     190         z1_jspongearea = 1._wp / REAL( jspongearea, wp ) 
    194191          
    195192         ztabramp(:,:) = 0._wp 
     
    199196         IF ( nbcellsy <= 3 ) jspongearea = -1 
    200197 
    201          ! --- West --- ! 
    202          IF(lk_west) THEN 
     198         IF( lk_west ) THEN                             ! --- West --- ! 
    203199            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    204200            ind2 = nn_hls + 1 + nbghostcells + ispongearea  
    205201            DO ji = mi0(ind1), mi1(ind2)    
    206202               DO jj = 1, jpj                
    207                   ztabramp(ji,jj) = REAL( ind2 - mig(ji) ) * z1_ispongearea * zmskwest(jj) 
     203                  ztabramp(ji,jj) =                       REAL(ind2 - mig(ji), wp) * z1_ispongearea  * zmskwest(jj) 
    208204               END DO 
    209205            END DO 
     
    217213            END DO 
    218214         ENDIF 
    219  
    220          ! --- East --- ! 
    221          IF(lk_east) THEN 
     215         IF( lk_east ) THEN                             ! --- East --- ! 
    222216            ind1 = jpiglo - ( nn_hls + nbghostcells ) - ispongearea 
    223217            ind2 = jpiglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
    224218            DO ji = mi0(ind1), mi1(ind2) 
    225219               DO jj = 1, jpj 
    226                   ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mig(ji) - ind1 ) * z1_ispongearea) * zmskeast(jj) 
     220                  ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL(mig(ji) - ind1, wp) * z1_ispongearea ) * zmskeast(jj) 
    227221               END DO 
    228222            END DO 
     
    235229               END DO 
    236230            END DO 
    237          ENDIF 
    238           
    239          ! --- South --- ! 
    240          IF( lk_south ) THEN  
     231         ENDIF       
     232         IF( lk_south ) THEN                            ! --- South --- ! 
    241233            ind1 = nn_hls + 1 + nbghostcells               ! halo + land + nbghostcells 
    242234            ind2 = nn_hls + 1 + nbghostcells + jspongearea  
    243235            DO jj = mj0(ind1), mj1(ind2)  
    244236               DO ji = 1, jpi 
    245                   ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( ind2 - mjg(jj) ) * z1_jspongearea) * zmsksouth(ji) 
     237                  ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL(ind2 - mjg(jj), wp) * z1_jspongearea ) * zmsksouth(ji) 
    246238               END DO 
    247239            END DO 
     
    255247            END DO 
    256248         ENDIF 
    257                 
    258          ! --- North --- ! 
    259          IF( lk_north ) THEN   
     249         IF( lk_north ) THEN                            ! --- North --- ! 
    260250            ind1 = jpjglo - ( nn_hls + nbghostcells ) - jspongearea 
    261251            ind2 = jpjglo - ( nn_hls + nbghostcells )      ! halo + land + nbghostcells - 1 
    262252            DO jj = mj0(ind1), mj1(ind2) 
    263253               DO ji = 1, jpi 
    264                   ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL( mjg(jj) - ind1 ) * z1_jspongearea) * zmsknorth(ji) 
     254                  ztabramp(ji,jj) = MAX( ztabramp(ji,jj), REAL(mjg(jj) - ind1, wp) * z1_jspongearea ) * zmsknorth(ji) 
    265255               END DO 
    266256            END DO 
     
    333323      ztabrampu(:,:) = REAL( mbku_parentu(:,:), wp ) 
    334324      ztabrampv(:,:) = REAL( mbkv_parentv(:,:), wp ) 
    335       CALL lbc_lnk_multi( 'Agrif_Sponge', ztabramp, 'T', 1., ztabrampu, 'U', 1., ztabrampv, 'V', 1. ) 
     325      CALL lbc_lnk_multi( 'Agrif_Sponge', ztabramp, 'T', 1._wp, ztabrampu, 'U', 1._wp, ztabrampv, 'V', 1._wp ) 
    336326      mbkt_parent(:,:) = NINT( ztabramp (:,:) ) 
    337327      mbku_parent(:,:) = NINT( ztabrampu(:,:) ) 
Note: See TracChangeset for help on using the changeset viewer.