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 14200 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/NST/agrif_top_sponge.F90 – NEMO

Ignore:
Timestamp:
2020-12-17T15:36:44+01:00 (4 years ago)
Author:
mcastril
Message:

Merging r14117 through r14199 into dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/NST/agrif_top_sponge.F90

    r14086 r14200  
    3030   PUBLIC Agrif_Sponge_trc, interptrn_sponge 
    3131 
     32   !! * Substitutions 
     33#  include "domzgr_substitute.h90" 
    3234   !!---------------------------------------------------------------------- 
    3335   !! NEMO/NST 4.0 , NEMO Consortium (2018) 
     
    128130                  N_in = mbkt_parent(ji,jj) 
    129131                  ! Input grid (account for partial cells if any): 
    130                   DO jk=1,N_in 
    131                      z_in(jk) = tabres(ji,jj,jk,n2) - tabres(ji,jj,k2,n2) 
    132                      tabin(jk,1:jptra) = tabres(ji,jj,jk,1:jptra) 
    133                   END DO 
     132                  IF ( N_in > 0 ) THEN  
     133                     DO jk=1,N_in 
     134                        z_in(jk) = tabres(ji,jj,jk,n2) - tabres(ji,jj,k2,n2) 
     135                        tabin(jk,1:jptra) = tabres(ji,jj,jk,1:jptra) 
     136                     END DO 
    134137                   
    135                   ! Intermediate grid: 
    136                   DO jk = 1, N_in 
    137                      h_in_i(jk) = e3t0_parent(ji,jj,jk) * &  
    138                        &       (1._wp + tabres(ji,jj,k2,n2)/(ht0_parent(ji,jj)*ssmask(ji,jj) + 1._wp - ssmask(ji,jj))) 
    139                   END DO 
    140                   z_in_i(1) = 0.5_wp * h_in_i(1) 
    141                   DO jk=2,N_in 
    142                      z_in_i(jk) = z_in_i(jk-1) + 0.5_wp * ( h_in_i(jk) + h_in_i(jk-1) ) 
    143                   END DO 
    144                   z_in_i(1:N_in) = z_in_i(1:N_in)  - tabres(ji,jj,k2,n2) 
    145  
     138                     ! Intermediate grid: 
     139                     DO jk = 1, N_in 
     140                        h_in_i(jk) = e3t0_parent(ji,jj,jk) * &  
     141                          &       (1._wp + tabres(ji,jj,k2,n2)/(ht0_parent(ji,jj)*ssmask(ji,jj) + 1._wp - ssmask(ji,jj))) 
     142                     END DO 
     143                     z_in_i(1) = 0.5_wp * h_in_i(1) 
     144                     DO jk=2,N_in 
     145                        z_in_i(jk) = z_in_i(jk-1) + 0.5_wp * ( h_in_i(jk) + h_in_i(jk-1) ) 
     146                     END DO 
     147                     z_in_i(1:N_in) = z_in_i(1:N_in)  - tabres(ji,jj,k2,n2) 
     148                  END IF 
    146149                  ! Output (Child) grid: 
    147150                  N_out = mbkt(ji,jj) 
Note: See TracChangeset for help on using the changeset viewer.