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 8762 for branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90 – NEMO

Ignore:
Timestamp:
2017-11-21T11:15:35+01:00 (6 years ago)
Author:
jchanut
Message:

AGRIF + vvl: Final changes, update SETTE tests (these are ok except SAS) - #1965

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90

    r8741 r8762  
    6565 
    6666 
    67    SUBROUTINE updateTRC( ptab, i1, i2, j1, j2, k1, k2, n1, n2, before, nb, ndir ) 
     67   SUBROUTINE updateTRC( tabres, i1, i2, j1, j2, k1, k2, n1, n2, before ) 
    6868      !!---------------------------------------------------------------------- 
    69       !!                      *** ROUTINE updateT *** 
     69      !!                      *** ROUTINE updateTRC *** 
    7070      !!---------------------------------------------------------------------- 
    7171      INTEGER                                    , INTENT(in   ) ::   i1, i2, j1, j2, k1, k2, n1, n2 
    72       REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) ::   ptab 
     72      REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) ::   tabres 
    7373      LOGICAL                                    , INTENT(in   ) ::   before 
    74       INTEGER, INTENT(in) :: nb, ndir 
    7574      !! 
    76       LOGICAL :: western_side, eastern_side, southern_side, northern_side  
    7775      INTEGER :: ji,jj,jk,jn 
    7876      REAL(wp) :: ztb, ztnu, ztno 
     
    134132         ENDIF 
    135133         ! 
    136          ! 
    137 # if defined DECAL_FEEDBACK 
    138          IF (.NOT.ln_linssh) THEN  
    139             western_side  = (nb == 1).AND.(ndir == 1) 
    140             eastern_side  = (nb == 1).AND.(ndir == 2) 
    141             southern_side = (nb == 2).AND.(ndir == 1) 
    142             northern_side = (nb == 2).AND.(ndir == 2) 
    143             ! 
    144             ! Asselin correction  
    145             IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
    146                IF (southern_side) THEN 
    147                   DO jn = n1,n2 
    148                      DO jk=k1,k2 
    149                         DO ji=i1,i2 
    150                            ztb  = trb(ji,j1-1,jk,jn) * e3t_b(ji,j1-1,jk) ! fse3t_b prior update should be used 
    151                            ztnu = trn(ji,j1-1,jk,jn) * e3t_n(ji,j1-1,jk) 
    152                            ztno = trn(ji,j1-1,jk,jn) * e3t_a(ji,j1-1,jk) 
    153                            trb(ji,j1-1,jk,jn) = ( ztb + atfp * ( ztnu - ztno) )  &  
    154                                      &        * tmask(ji,j1-1,jk) / e3t_b(ji,j1-1,jk) 
    155                         END DO 
    156                      ENDDO 
    157                   ENDDO 
    158                ENDIF 
    159                IF (northern_side) THEN 
    160                   DO jn = n1,n2 
    161                      DO jk=k1,k2 
    162                         DO ji=i1,i2 
    163                            ztb  = trb(ji,j2+1,jk,jn) * e3t_b(ji,j2+1,jk) ! fse3t_b prior update should be used 
    164                            ztnu = trn(ji,j2+1,jk,jn) * e3t_n(ji,j2+1,jk) 
    165                            ztno = trn(ji,j2+1,jk,jn) * e3t_a(ji,j2+1,jk) 
    166                            trb(ji,j2+1,jk,jn) = ( ztb + atfp * ( ztnu - ztno) )  &  
    167                                      &        * tmask(ji,j2+1,jk) / e3t_b(ji,j2+1,jk) 
    168                         END DO 
    169                      ENDDO 
    170                   ENDDO 
    171                ENDIF 
    172                IF (western_side) THEN 
    173                   DO jn = n1,n2 
    174                      DO jk=k1,k2 
    175                         DO jj=j1,j2 
    176                            ztb  = trb(i1-1,jj,jk,jn) * e3t_b(i1-1,jj,jk) ! fse3t_b prior update should be used 
    177                            ztnu = trn(i1-1,jj,jk,jn) * e3t_n(i1-1,jj,jk) 
    178                            ztno = trn(i1-1,jj,jk,jn) * e3t_a(i1-1,jj,jk) 
    179                            trb(i1-1,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) )  &  
    180                                      &        * tmask(i1-1,jj,jk) / e3t_b(i1-1,jj,jk) 
    181                         END DO 
    182                      ENDDO 
    183                   ENDDO 
    184                ENDIF 
    185                IF (eastern_side) THEN 
    186                   DO jn = n1,n2 
    187                      DO jk=k1,k2 
    188                         DO jj=j1,j2 
    189                            ztb  = trb(i2+1,jj,jk,jn) * e3t_b(i2+1,jj,jk) ! fse3t_b prior update should be used 
    190                            ztnu = trn(i2+1,jj,jk,jn) * e3t_n(i2+1,jj,jk) 
    191                            ztno = trn(i2+1,jj,jk,jn) * e3t_a(i2+1,jj,jk) 
    192                            trb(i2+1,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) )  &  
    193                                      &        * tmask(i2+1,jj,jk) / e3t_b(i2+1,jj,jk) 
    194                         END DO 
    195                      ENDDO 
    196                   ENDDO 
    197                ENDIF 
    198             ENDIF ! Asselin correction 
    199  
    200             IF (southern_side) THEN 
    201                DO jn = n1,n2 
    202                   DO jk=k1,k2 
    203                      DO ji=i1,i2 
    204                         trn(ji,j1-1,jk,jn) = trn(ji,j1-1,jk,jn) * e3t_a(ji,j1-1,jk) / e3t_n(ji,j1-1,jk) 
    205                      END DO 
    206                   ENDDO 
    207                ENDDO 
    208             ENDIF 
    209             IF (northern_side) THEN 
    210                DO jn = n1,n2 
    211                   DO jk=k1,k2 
    212                      DO ji=i1,i2 
    213                         trn(ji,j2+1,jk,jn) = trn(ji,j2+1,jk,jn) * e3t_a(ji,j2+1,jk) / e3t_n(ji,j2+1,jk) 
    214                      END DO 
    215                   ENDDO 
    216                ENDDO 
    217             ENDIF 
    218             IF (western_side) THEN 
    219                DO jn = n1,n2 
    220                   DO jk=k1,k2 
    221                      DO jj=j1,j2 
    222                         trn(i1-1,jj,jk,jn) = trn(i1-1,jj,jk,jn) * e3t_a(i1-1,jj,jk) / e3t_n(i1-1,jj,jk) 
    223                      END DO 
    224                   ENDDO 
    225                ENDDO 
    226             ENDIF 
    227             IF (eastern_side) THEN 
    228                DO jn = n1,n2 
    229                   DO jk=k1,k2 
    230                      DO jj=j1,j2 
    231                         trn(i2+1,jj,jk,jn) = trn(i2+1,jj,jk,jn) * e3t_a(i2+1,jj,jk) / e3t_n(i2+1,jj,jk) 
    232                      END DO 
    233                   ENDDO 
    234                ENDDO 
    235             ENDIF 
    236          ENDIF 
    237 #endif 
    238134      ENDIF 
    239135      !  
Note: See TracChangeset for help on using the changeset viewer.