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 14013 for NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_oce_interp.F90 – NEMO

Ignore:
Timestamp:
2020-12-02T16:23:27+01:00 (3 years ago)
Author:
jchanut
Message:

Manually merge with Christian's branch agrif top sponge/interp #2129

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_oce_interp.F90

    r14000 r14013  
    940940         ELSE 
    941941          
     942            IF ( Agrif_Parent(ln_zps) ) THEN ! Account for partial cells  
     943                                             ! linear vertical interpolation 
     944               DO jj=j1,j2 
     945                  DO ji=i1,i2 
     946                     ! 
     947                     N_in  = mbkt(ji,jj) 
     948                     N_out = mbkt(ji,jj) 
     949                     z_in(1) = ptab(ji,jj,1,n2) 
     950                     tabin(1,1:jpts) = ptab(ji,jj,1,1:jpts) 
     951                     DO jk=2, N_in 
     952                        z_in(jk) = ptab(ji,jj,jk,n2) 
     953                        tabin(jk,1:jpts) = ptab(ji,jj,jk,1:jpts) 
     954                     END DO 
     955                     IF (.NOT.ln_linssh) z_in(1:N_in) = z_in(1:N_in) - ptab(ji,jj,k2,n2) 
     956                     z_out(1) = 0.5_wp * e3t(ji,jj,1,Krhs_a) 
     957                     DO jk=2, N_out 
     958                        z_out(jk) = z_out(jk-1) + 0.5_wp * (e3t(ji,jj,jk-1,Krhs_a) + e3t(ji,jj,jk,Krhs_a)) 
     959                     END DO 
     960                     IF (.NOT.ln_linssh) z_out(1:N_out) = z_out(1:N_out) - ssh(ji,jj,Krhs_a) 
     961                     CALL remap_linear(tabin(1:N_in,1:jpts),z_in(1:N_in),ptab(ji,jj,1:N_out,1:jpts), & 
     962                                   &   z_out(1:N_out),N_in,N_out,jpts)   
     963                  END DO 
     964               END DO 
     965            ENDIF 
     966 
    942967            DO jn =1, jpts 
    943  
    944                IF ( Agrif_Parent(ln_zps) ) THEN ! Account for partial cells  
    945                                                 ! linear vertical interpolation 
    946                   DO jj=j1,j2 
    947                      DO ji=i1,i2 
    948                         ! 
    949                         N_in  = mbkt(ji,jj) 
    950                         N_out = mbkt(ji,jj) 
    951                         z_in(1) = ptab(ji,jj,1,n2) 
    952                         tabin(1,1:jpts) = ptab(ji,jj,1,1:jpts) 
    953                         DO jk=2, N_in 
    954                            z_in(jk) = ptab(ji,jj,jk,n2) 
    955                            tabin(jk,1:jpts) = ptab(ji,jj,jk,1:jpts) 
    956                         END DO 
    957                         IF (.NOT.ln_linssh) z_in(1:N_in) = z_in(1:N_in) - ptab(ji,jj,k2,n2) 
    958                         z_out(1) = 0.5_wp * e3t(ji,jj,1,Krhs_a) 
    959                         DO jk=2, N_out 
    960                            z_out(jk) = z_out(jk-1) + 0.5_wp * (e3t(ji,jj,jk-1,Krhs_a) + e3t(ji,jj,jk,Krhs_a)) 
    961                         END DO 
    962                         IF (.NOT.ln_linssh) z_out(1:N_out) = z_out(1:N_out) - ssh(ji,jj,Krhs_a) 
    963                         CALL remap_linear(tabin(1:N_in,1:jpts),z_in(1:N_in),ptab(ji,jj,1:N_out,1:jpts), & 
    964                                       &   z_out(1:N_out),N_in,N_out,jpts)   
    965                      END DO 
    966                   END DO 
    967  
    968                ENDIF 
    969  
    970968               ts(i1:i2,j1:j2,1:jpk,jn,Krhs_a) = ptab(i1:i2,j1:j2,1:jpk,jn)*tmask(i1:i2,j1:j2,1:jpk) 
    971  
    972969            END DO 
    973970         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.