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 10009 for NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/NST/agrif_oce_update.F90 – NEMO

Ignore:
Timestamp:
2018-07-29T11:23:51+02:00 (6 years ago)
Author:
gm
Message:

#1911 (ENHANCE-04): RK3 branch - step II.1 time-level dimension on ssh

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/NST/agrif_oce_update.F90

    r9939 r10009  
    10151015      !  
    10161016      IF( before ) THEN 
    1017          DO jj=j1,j2 
    1018             DO ji=i1,i2 
    1019                tabres(ji,jj) = sshn(ji,jj) 
     1017         DO jj = j1, j2 
     1018            DO ji = i1, i2 
     1019               tabres(ji,jj) = ssh(ji,jj,Nnn) 
    10201020            END DO 
    10211021         END DO 
     
    10231023         IF ( .NOT.( lk_agrif_fstep .AND. l_1st_euler ) ) THEN 
    10241024!!gm         IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 
    1025             DO jj=j1,j2 
    1026                DO ji=i1,i2 
    1027                   sshb(ji,jj) = sshb(ji,jj) + rn_atfp * ( tabres(ji,jj) - sshn(ji,jj) ) * tmask(ji,jj,1) 
    1028                END DO 
    1029             END DO 
    1030          ENDIF 
    1031          ! 
    1032          DO jj=j1,j2 
    1033             DO ji=i1,i2 
    1034                sshn(ji,jj) = tabres(ji,jj) * tmask(ji,jj,1) 
     1025            DO jj = j1, j2 
     1026               DO ji = i1, i2 
     1027                  ssh(ji,jj,Nbb) = ssh(ji,jj,Nbb) + rn_atfp * ( tabres(ji,jj) - ssh(ji,jj,Nnn) ) * tmask(ji,jj,1) 
     1028               END DO 
     1029            END DO 
     1030         ENDIF 
     1031         ! 
     1032         DO jj = j1, j2 
     1033            DO ji = i1, i2 
     1034               ssh(ji,jj,Nnn) = tabres(ji,jj) * tmask(ji,jj,1) 
    10351035            END DO 
    10361036         END DO 
     
    10381038         IF ( l_1st_euler .AND. Agrif_Nb_Step() == 0 ) THEN 
    10391039!!gm         IF  ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 
    1040             sshb(i1:i2,j1:j2)  = sshn(i1:i2,j1:j2) 
     1040            ssh(i1:i2,j1:j2,Nbb)  = ssh(i1:i2,j1:j2,Nnn) 
    10411041         ENDIF 
    10421042         ! 
     
    11191119            DO jj=j1,j2 
    11201120               zcor = rn_Dt * r1_e1e2t(i1  ,jj) * e2u(i1,jj) * (ub2_b(i1,jj)-tabres(i1,jj))  
    1121                sshn(i1  ,jj) = sshn(i1  ,jj) + zcor 
    1122                IF ( .NOT.( lk_agrif_fstep .AND. l_1st_euler ) )   sshb(i1  ,jj) = sshb(i1  ,jj) + rn_atfp * zcor 
     1121               ssh(i1  ,jj,Nnn) = ssh(i1  ,jj,Nnn) + zcor 
     1122               IF ( .NOT.( lk_agrif_fstep .AND. l_1st_euler ) )   ssh(i1  ,jj,Nbb) = ssh(i1  ,jj,Nbb) + rn_atfp * zcor 
    11231123!!gm               IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) sshb(i1  ,jj) = sshb(i1  ,jj) + rn_atfp * zcor 
    11241124            END DO 
     
    11271127            DO jj=j1,j2 
    11281128               zcor = - rn_Dt * r1_e1e2t(i2+1,jj) * e2u(i2,jj) * (ub2_b(i2,jj)-tabres(i2,jj)) 
    1129                sshn(i2+1,jj) = sshn(i2+1,jj) + zcor 
    1130                IF (.NOT.( lk_agrif_fstep .AND. l_1st_euler ) )   sshb(i2+1,jj) = sshb(i2+1,jj) + rn_atfp * zcor 
     1129               ssh(i2+1,jj,Nnn) = ssh(i2+1,jj,Nnn) + zcor 
     1130               IF (.NOT.( lk_agrif_fstep .AND. l_1st_euler ) )   ssh(i2+1,jj,Nbb) = ssh(i2+1,jj,Nbb) + rn_atfp * zcor 
    11311131!!gm               IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) sshb(i2+1,jj) = sshb(i2+1,jj) + rn_atfp * zcor 
    11321132            END DO 
     
    12101210         IF (southern_side) THEN 
    12111211            DO ji=i1,i2 
    1212                zcor = rn_Dt * r1_e1e2t(ji,j1  ) * e1v(ji,j1  ) * (vb2_b(ji,j1)-tabres(ji,j1)) 
    1213                sshn(ji,j1  ) = sshn(ji,j1  ) + zcor 
    1214                IF ( .NOT.( lk_agrif_fstep .AND. l_euler ) )   sshb(ji,j1  ) = sshb(ji,j1) + rn_atfp * zcor 
     1212               zcor = rn_Dt * r1_e1e2t(ji,j1  ) * e1v(ji,j1  ) * ( vb2_b(ji,j1)-tabres(ji,j1) ) 
     1213               ssh(ji,j1  ,Nnn) = ssh(ji,j1  ,Nnn) + zcor 
     1214               IF ( .NOT.( lk_agrif_fstep .AND. l_euler ) )   ssh(ji,j1  ,Nbb) = ssh(ji,j1,Nbb) + rn_atfp * zcor 
    12151215!!gm               IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) sshb(ji,j1  ) = sshb(ji,j1) + rn_atfp * zcor 
    12161216            END DO 
     
    12181218         IF (northern_side) THEN                
    12191219            DO ji=i1,i2 
    1220                zcor = - rn_Dt * r1_e1e2t(ji,j2+1) * e1v(ji,j2  ) * (vb2_b(ji,j2)-tabres(ji,j2)) 
    1221                sshn(ji,j2+1) = sshn(ji,j2+1) + zcor 
    1222                IF ( .NOT.( lk_agrif_fstep .AND. l_1st_euler ) )   sshb(ji,j2+1) = sshb(ji,j2+1) + rn_atfp * zcor 
     1220               zcor = - rn_Dt * r1_e1e2t(ji,j2+1) * e1v(ji,j2  ) * ( vb2_b(ji,j2)-tabres(ji,j2) ) 
     1221               ssh(ji,j2+1,Nnn) = ssh(ji,j2+1,Nnn) + zcor 
     1222               IF ( .NOT.( lk_agrif_fstep .AND. l_1st_euler ) )   ssh(ji,j2+1,Nbb) = ssh(ji,j2+1,Nbb) + rn_atfp * zcor 
    12231223!!gm               IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) sshb(ji,j2+1) = sshb(ji,j2+1) + rn_atfp * zcor 
    12241224            END DO 
     
    13501350         ! Update e3t from ssh (z* case only) 
    13511351         DO jk = 1, jpkm1 
    1352             DO jj=j1,j2 
    1353                DO ji=i1,i2 
    1354                   ptab(ji,jj,jk) = e3t_0(ji,jj,jk) * (1._wp + sshn(ji,jj) & 
    1355                                      & *ssmask(ji,jj)/(ht_0(ji,jj)-1._wp + ssmask(ji,jj))) 
     1352            DO jj = j1, j2 
     1353               DO ji = i1, i2 
     1354                  ptab(ji,jj,jk) = e3t_0(ji,jj,jk) * (1._wp + ssh(ji,jj,Nnn) * r1_ht_0(ji,jj) *tmask(ji,jj,jk) ) 
    13561355               END DO 
    13571356            END DO 
Note: See TracChangeset for help on using the changeset viewer.