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/OCE/DYN/dynhpg.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/OCE/DYN/dynhpg.F90

    r9598 r10009  
    453453        DO jj = 2, jpjm1 
    454454           DO ji = 2, jpim1  
    455              ll_tmp1 = MIN(  sshn(ji,jj)               ,  sshn(ji+1,jj) ) >                & 
    456                   &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
    457                   &    MAX(  sshn(ji,jj) +  ht_0(ji,jj),  sshn(ji+1,jj) + ht_0(ji+1,jj) )  & 
    458                   &                                                       > rn_wdmin1 + rn_wdmin2 
    459              ll_tmp2 = ( ABS( sshn(ji,jj)              -  sshn(ji+1,jj) ) > 1.E-12 ) .AND. (       & 
    460                   &    MAX(   sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
    461                   &    MAX(  -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
     455             ll_tmp1 = MIN(  ssh(ji,jj,Nnn)               , ssh(ji+1,jj,Nnn)                  )                            & 
     456                  &  > MAX(                 - ht_0(ji,jj) ,                  - ht_0(ji+1,jj)  )  .AND.                     & 
     457                  &    MAX(  ssh(ji,jj,Nnn) + ht_0(ji,jj) , ssh(ji+1,jj,Nnn) + ht_0(ji+1,jj)  )    >   rn_wdmin1 + rn_wdmin2 
     458                  ! 
     459             ll_tmp2 = ABS( ssh(ji,jj,Nnn) -  ssh(ji+1,jj,Nnn) ) > 1.E-12                        .AND.                     & 
     460                  &    MAX( ssh(ji,jj,Nnn) ,  ssh(ji+1,jj,Nnn) ) > MAX( ht_0(ji,jj) , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 
    462461 
    463462             IF(ll_tmp1) THEN 
    464463               zcpx(ji,jj) = 1.0_wp 
    465464             ELSE IF(ll_tmp2) THEN 
    466                ! no worries about  sshn(ji+1,jj) -  sshn(ji  ,jj) = 0, it won't happen ! here 
    467                zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 
    468                            &    / (sshn(ji+1,jj) - sshn(ji  ,jj)) ) 
     465               ! no worries about  ssh(ji+1,jj,,Nnn) -  ssh(ji,jj,Nnn) = 0, it won't happen ! here 
     466               zcpx(ji,jj) = ABS(   ( ssh(ji+1,jj,Nnn) + ht_0(ji+1,jj) - ssh(ji,jj,Nnn) - ht_0(ji,jj) ) & 
     467                           &      / ( ssh(ji+1,jj,Nnn)                 - ssh(ji,jj,Nnn)               ) ) 
    469468             ELSE 
    470469               zcpx(ji,jj) = 0._wp 
    471470             END IF 
    472471       
    473              ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
    474                   &    MAX( -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) .AND.            & 
    475                   &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji,jj+1) + ht_0(ji,jj+1) )  & 
    476                   &                                                      > rn_wdmin1 + rn_wdmin2 
    477              ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji,jj+1) ) > 1.E-12 ) .AND. (        & 
    478                   &    MAX(   sshn(ji,jj)             ,  sshn(ji,jj+1) ) >                & 
    479                   &    MAX(  -ht_0(ji,jj)             , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
     472             ll_tmp1 = MIN(  ssh (ji,jj,Nnn)             ,  ssh (ji,jj+1,Nnn) )                     & 
     473                  &  > MAX( -ht_0(ji,jj)                 , -ht_0(ji,jj+1) )              .AND.      & 
     474                  &    MAX(  ssh(ji,jj,Nnn) + ht_0(ji,jj),  ssh (ji,jj+1,Nnn) + ht_0(ji,jj+1) )     & 
     475                  &  > rn_wdmin1 + rn_wdmin2 
     476             ll_tmp2 = ( ABS( ssh (ji,jj,Nnn)            -  ssh (ji,jj+1,Nnn) ) > 1.E-12 ) .AND.    & 
     477                  &  ( MAX(   ssh (ji,jj,Nnn)            ,  ssh (ji,jj+1,Nnn) ) >                   & 
     478                  &    MAX(  -ht_0(ji,jj)                , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    480479 
    481480             IF(ll_tmp1) THEN 
    482481               zcpy(ji,jj) = 1.0_wp 
    483482             ELSE IF(ll_tmp2) THEN 
    484                ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    485                zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    486                            &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
     483               ! no worries about  ssh(ji,jj+1,Nnn) - ssh(ji,jj  ,Nnn) = 0, it won't happen ! here 
     484               zcpy(ji,jj) = ABS( ( ssh(ji,jj+1,Nnn) + ht_0(ji,jj+1) - ssh(ji,jj,Nnn) - ht_0(ji,jj) ) & 
     485                  &             / ( ssh(ji,jj+1,Nnn)                 - ssh(ji,jj,Nnn)               ) ) 
    487486             ELSE 
    488487               zcpy(ji,jj) = 0._wp 
     
    687686        DO jj = 2, jpjm1 
    688687           DO ji = 2, jpim1  
    689              ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
    690                   &    MAX( -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) .AND.            & 
    691                   &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji+1,jj) + ht_0(ji+1,jj) )  & 
    692                   &                                                      > rn_wdmin1 + rn_wdmin2 
    693              ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji+1,jj) ) > 1.E-12 ) .AND. (        & 
    694                   &    MAX(   sshn(ji,jj)             ,  sshn(ji+1,jj) ) >                & 
     688             ll_tmp1 = MIN(  ssh (ji,jj,Nnn)              ,  ssh (ji+1,jj,Nnn) )                  & 
     689                  &  > MAX( -ht_0(ji,jj)                  , -ht_0(ji+1,jj)    ) .AND.            & 
     690                  &    MAX(  ssh (ji,jj,Nnn) + ht_0(ji,jj),  ssh (ji+1,jj,Nnn) + ht_0(ji+1,jj) )  & 
     691                  & > rn_wdmin1 + rn_wdmin2 
     692             ll_tmp2 = ( ABS( ssh (ji,jj,Nnn)             -  ssh (ji+1,jj,Nnn) ) > 1.E-12 ) .AND. (   & 
     693                  &    MAX(   ssh (ji,jj,Nnn)             ,  ssh (ji+1,jj,Nnn) ) >                & 
    695694                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    696695             IF(ll_tmp1) THEN 
    697696               zcpx(ji,jj) = 1.0_wp 
    698697             ELSE IF(ll_tmp2) THEN 
    699                ! no worries about  sshn(ji+1,jj) -  sshn(ji  ,jj) = 0, it won't happen ! here 
    700                zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 
    701                            &    / (sshn(ji+1,jj) - sshn(ji  ,jj)) ) 
     698               ! no worries about  ssh(ji+1,jj,Nnn) -  ssh(ji  ,jj,Nnn) = 0, it won't happen ! here 
     699               zcpx(ji,jj) = ABS( (ssh(ji+1,jj,Nnn) + ht_0(ji+1,jj) - ssh(ji,jj,Nnn) - ht_0(ji,jj) ) & 
     700                           &    / (ssh(ji+1,jj,Nnn)                 - ssh(ji,jj,Nnn)               ) ) 
    702701             ELSE 
    703702               zcpx(ji,jj) = 0._wp 
    704703             END IF 
    705704       
    706              ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
    707                   &    MAX( -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) .AND.            & 
    708                   &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji,jj+1) + ht_0(ji,jj+1) )  & 
    709                   &                                                      > rn_wdmin1 + rn_wdmin2 
    710              ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji,jj+1) ) > 1.E-12 ) .AND. (        & 
    711                   &    MAX(   sshn(ji,jj)             ,  sshn(ji,jj+1) ) >                & 
     705             ll_tmp1 = MIN(  ssh (ji,jj,Nnn)              ,  ssh (ji,jj+1,Nnn) ) >                & 
     706                  &    MAX( -ht_0(ji,jj)                  , -ht_0(ji,jj+1) )          .AND.       & 
     707                  &    MAX(  ssh (ji,jj,Nnn) + ht_0(ji,jj),  ssh (ji,jj+1,Nnn) + ht_0(ji,jj+1) )  & 
     708                  &  > rn_wdmin1 + rn_wdmin2 
     709             ll_tmp2 = ( ABS( ssh (ji,jj,Nnn)             -  ssh (ji,jj+1,Nnn) ) > 1.E-12 ) .AND. (        & 
     710                  &    MAX(   ssh (ji,jj,Nnn)             ,  ssh (ji,jj+1,Nnn) ) >                & 
    712711                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    713712 
     
    715714               zcpy(ji,jj) = 1.0_wp 
    716715             ELSE IF(ll_tmp2) THEN 
    717                ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    718                zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    719                            &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
     716               ! no worries about  ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) = 0, it won't happen ! here 
     717               zcpy(ji,jj) = ABS( (ssh(ji,jj+1,Nnn) + ht_0(ji,jj+1) - ssh(ji,jj,Nnn) - ht_0(ji,jj) )  & 
     718                           &    / (ssh(ji,jj+1,Nnn)                 - ssh(ji,jj,Nnn)               )  ) 
    720719             ELSE 
    721720               zcpy(ji,jj) = 0._wp 
     
    975974         DO jj = 2, jpjm1 
    976975           DO ji = 2, jpim1  
    977              ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji+1,jj) ) >                & 
     976             ll_tmp1 = MIN(  ssh (ji,jj,Nnn)              ,  ssh(ji+1,jj,Nnn) ) >                & 
    978977                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) .AND.            & 
    979                   &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji+1,jj) + ht_0(ji+1,jj) )  & 
    980                   &                                                      > rn_wdmin1 + rn_wdmin2 
    981              ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji+1,jj) ) > 1.E-12 ) .AND. (         & 
    982                   &    MAX(   sshn(ji,jj)             ,  sshn(ji+1,jj) ) >                & 
     978                  &    MAX(  ssh(ji,jj,Nnn) + ht_0(ji,jj),  ssh(ji+1,jj,Nnn) + ht_0(ji+1,jj) )  & 
     979                  &  > rn_wdmin1 + rn_wdmin2 
     980             ll_tmp2 = ( ABS( ssh(ji,jj,Nnn)             -  ssh (ji+1,jj,Nnn) ) > 1.E-12 ) .AND. (         & 
     981                  &    MAX(   ssh(ji,jj,Nnn)             ,  ssh (ji+1,jj,Nnn) ) >                & 
    983982                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji+1,jj) ) + rn_wdmin1 + rn_wdmin2 ) 
    984983 
     
    986985               zcpx(ji,jj) = 1.0_wp 
    987986             ELSE IF(ll_tmp2) THEN 
    988                ! no worries about  sshn(ji+1,jj) -  sshn(ji  ,jj) = 0, it won't happen ! here 
    989                zcpx(ji,jj) = ABS( (sshn(ji+1,jj) + ht_0(ji+1,jj) - sshn(ji,jj) - ht_0(ji,jj)) & 
    990                            &    / (sshn(ji+1,jj) -  sshn(ji  ,jj)) ) 
     987               ! no worries about  ssh(ji+1,jj,Nnn) -  ssh(ji,jj,Nnn) = 0, it won't happen ! here 
     988               zcpx(ji,jj) = ABS( (ssh(ji+1,jj,Nnn) + ht_0(ji+1,jj) - ssh(ji,jj,Nnn) - ht_0(ji,jj) ) & 
     989                           &    / (ssh(ji+1,jj,Nnn)                 - ssh(ji,jj,Nnn)               ) ) 
    991990               
    992991                zcpx(ji,jj) = max(min( zcpx(ji,jj) , 1.0_wp),0.0_wp) 
     
    995994             END IF 
    996995       
    997              ll_tmp1 = MIN(  sshn(ji,jj)              ,  sshn(ji,jj+1) ) >                & 
     996             ll_tmp1 = MIN(  ssh (ji,jj,Nnn)          ,  ssh(ji,jj+1,Nnn) ) >                & 
    998997                  &    MAX( -ht_0(ji,jj)              , -ht_0(ji,jj+1) ) .AND.            & 
    999                   &    MAX(  sshn(ji,jj) + ht_0(ji,jj),  sshn(ji,jj+1) + ht_0(ji,jj+1) )  & 
    1000                   &                                                      > rn_wdmin1 + rn_wdmin2 
    1001              ll_tmp2 = ( ABS( sshn(ji,jj)             -  sshn(ji,jj+1) ) > 1.E-12 ) .AND. (      & 
    1002                   &    MAX(   sshn(ji,jj)             ,  sshn(ji,jj+1) ) >                & 
     998                  &    MAX(  ssh (ji,jj,Nnn) + ht_0(ji,jj),  ssh(ji,jj+1,Nnn) + ht_0(ji,jj+1) )  & 
     999                  &  > rn_wdmin1 + rn_wdmin2 
     1000             ll_tmp2 = ( ABS( ssh (ji,jj,Nnn)         -  ssh (ji,jj+1,Nnn) ) > 1.E-12 ) .AND. (      & 
     1001                  &    MAX(   ssh (ji,jj,Nnn)         ,  ssh (ji,jj+1,Nnn) ) >                & 
    10031002                  &    MAX(  -ht_0(ji,jj)             , -ht_0(ji,jj+1) ) + rn_wdmin1 + rn_wdmin2 ) 
    10041003 
     
    10061005               zcpy(ji,jj) = 1.0_wp 
    10071006             ELSE IF(ll_tmp2) THEN 
    1008                ! no worries about  sshn(ji,jj+1) -  sshn(ji,jj  ) = 0, it won't happen ! here 
    1009                zcpy(ji,jj) = ABS( (sshn(ji,jj+1) + ht_0(ji,jj+1) - sshn(ji,jj) - ht_0(ji,jj)) & 
    1010                            &    / (sshn(ji,jj+1) - sshn(ji,jj  )) ) 
     1007               ! no worries about  ssh(ji,jj+1,Nnn) -  ssh(ji,jj,Nnn) = 0, it won't happen ! here 
     1008               zcpy(ji,jj) = ABS(  ( ssh(ji,jj+1,Nnn) + ht_0(ji,jj+1) - ssh(ji,jj,Nnn) - ht_0(ji,jj))  & 
     1009                           &     / ( ssh(ji,jj+1,Nnn)                 - ssh(ji,jj,Nnn)              )  ) 
    10111010                zcpy(ji,jj) = max(min( zcpy(ji,jj) , 1.0_wp),0.0_wp) 
    10121011 
     
    10411040      DO jj = 1, jpj 
    10421041         DO ji = 1, jpi 
    1043             zdept(ji,jj,1) = 0.5_wp * e3w_n(ji,jj,1) - sshn(ji,jj) * znad 
     1042            zdept(ji,jj,1) = 0.5_wp * e3w_n(ji,jj,1) - ssh(ji,jj,Nnn) * znad 
    10441043         END DO 
    10451044      END DO 
     
    10871086 
    10881087      ! Prepare zsshu_n and zsshv_n 
     1088!!gm Vector form    
     1089!         DO jj = 2, jpjm1 
     1090!           DO ji = 2, jpim1 
     1091!   !!gm BUG ?    if it is ssh at u- & v-point then it should be: 
     1092!   !          zsshu_n(ji,jj) = (e1e2t(ji,jj) * ssh(ji,jj,Nnn) + e1e2t(ji+1,jj) * ssh(ji+1,jj,Nnn)) * & 
     1093!   !                         & r1_e1e2u(ji,jj) * umask(ji,jj,1) * 0.5_wp  
     1094!   !          zsshv_n(ji,jj) = (e1e2t(ji,jj) * ssh(ji,jj,Nnn) + e1e2t(ji,jj+1) * ssh(ji,jj+1,Nnn)) * & 
     1095!   !                         & r1_e1e2v(ji,jj) * vmask(ji,jj,1) * 0.5_wp  
     1096!   !!gm not this: 
     1097!             zsshu_n(ji,jj) = (e1e2u(ji,jj) * ssh(ji,jj,Nnn) + e1e2u(ji+1, jj) * ssh(ji+1,jj,Nnn)) * & 
     1098!                            & r1_e1e2u(ji,jj) * umask(ji,jj,1) * 0.5_wp  
     1099!             zsshv_n(ji,jj) = (e1e2v(ji,jj) * ssh(ji,jj,Nnn) + e1e2v(ji+1, jj) * ssh(ji,jj+1,Nnn)) * & 
     1100!                            & r1_e1e2v(ji,jj) * vmask(ji,jj,1) * 0.5_wp  
     1101!           END DO 
     1102!         END DO 
     1103!!gm Flux form : 
    10891104      DO jj = 2, jpjm1 
    1090         DO ji = 2, jpim1 
    1091 !!gm BUG ?    if it is ssh at u- & v-point then it should be: 
    1092 !          zsshu_n(ji,jj) = (e1e2t(ji,jj) * sshn(ji,jj) + e1e2t(ji+1,jj) * sshn(ji+1,jj)) * & 
    1093 !                         & r1_e1e2u(ji,jj) * umask(ji,jj,1) * 0.5_wp  
    1094 !          zsshv_n(ji,jj) = (e1e2t(ji,jj) * sshn(ji,jj) + e1e2t(ji,jj+1) * sshn(ji,jj+1)) * & 
    1095 !                         & r1_e1e2v(ji,jj) * vmask(ji,jj,1) * 0.5_wp  
    1096 !!gm not this: 
    1097           zsshu_n(ji,jj) = (e1e2u(ji,jj) * sshn(ji,jj) + e1e2u(ji+1, jj) * sshn(ji+1,jj)) * & 
    1098                          & r1_e1e2u(ji,jj) * umask(ji,jj,1) * 0.5_wp  
    1099           zsshv_n(ji,jj) = (e1e2v(ji,jj) * sshn(ji,jj) + e1e2v(ji+1, jj) * sshn(ji,jj+1)) * & 
    1100                          & r1_e1e2v(ji,jj) * vmask(ji,jj,1) * 0.5_wp  
     1105         DO ji = 2, jpim1 
     1106            zsshu_n(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nnn) + ssh(ji+1,jj,Nnn) ) * ssumask(ji,jj) 
     1107            zsshv_n(ji,jj) = 0.5_wp * ( ssh(ji,jj,Nnn) + ssh(ji,jj+1,Nnn) ) * ssvmask(ji,jj) 
    11011108        END DO 
    11021109      END DO 
    1103  
    11041110      CALL lbc_lnk_multi (zsshu_n, 'U', 1., zsshv_n, 'V', 1. ) 
    1105  
     1111      ! 
    11061112      DO jj = 2, jpjm1 
    1107         DO ji = 2, jpim1 
    1108           zu(ji,jj,1) = - ( e3u_n(ji,jj,1) - zsshu_n(ji,jj) * znad)  
    1109           zv(ji,jj,1) = - ( e3v_n(ji,jj,1) - zsshv_n(ji,jj) * znad) 
     1113         DO ji = 2, jpim1 
     1114            zu(ji,jj,1) = - ( e3u_n(ji,jj,1) - zsshu_n(ji,jj) * znad)  
     1115            zv(ji,jj,1) = - ( e3v_n(ji,jj,1) - zsshv_n(ji,jj) * znad) 
    11101116        END DO 
    11111117      END DO 
    1112  
     1118      ! 
    11131119      DO jk = 2, jpkm1 
    1114         DO jj = 2, jpjm1 
    1115           DO ji = 2, jpim1 
    1116             zu(ji,jj,jk) = zu(ji,jj,jk-1) - e3u_n(ji,jj,jk) 
    1117             zv(ji,jj,jk) = zv(ji,jj,jk-1) - e3v_n(ji,jj,jk) 
    1118           END DO 
    1119         END DO 
     1120         DO jj = 2, jpjm1 
     1121            DO ji = 2, jpim1 
     1122               zu(ji,jj,jk) = zu(ji,jj,jk-1) - e3u_n(ji,jj,jk) 
     1123               zv(ji,jj,jk) = zv(ji,jj,jk-1) - e3v_n(ji,jj,jk) 
     1124            END DO 
     1125         END DO 
     1126      END DO 
     1127      ! 
     1128      DO jk = 1, jpkm1 
     1129         DO jj = 2, jpjm1 
     1130            DO ji = 2, jpim1 
     1131               zu(ji,jj,jk) = zu(ji,jj,jk) + 0.5_wp * e3u_n(ji,jj,jk) 
     1132               zv(ji,jj,jk) = zv(ji,jj,jk) + 0.5_wp * e3v_n(ji,jj,jk) 
     1133            END DO 
     1134         END DO 
     1135      END DO 
     1136 
     1137      DO jk = 1, jpkm1 
     1138         DO jj = 2, jpjm1 
     1139            DO ji = 2, jpim1 
     1140               zu(ji,jj,jk) = MIN(  zu(ji,jj,jk) , MAX( -zdept(ji,jj,jk) , -zdept(ji+1,jj,jk) )  ) 
     1141               zu(ji,jj,jk) = MAX(  zu(ji,jj,jk) , MIN( -zdept(ji,jj,jk) , -zdept(ji+1,jj,jk) )  ) 
     1142               zv(ji,jj,jk) = MIN(  zv(ji,jj,jk) , MAX( -zdept(ji,jj,jk) , -zdept(ji,jj+1,jk) )  ) 
     1143               zv(ji,jj,jk) = MAX(  zv(ji,jj,jk) , MIN( -zdept(ji,jj,jk) , -zdept(ji,jj+1,jk) )  ) 
     1144            END DO 
     1145         END DO 
    11201146      END DO 
    11211147 
     
    11231149        DO jj = 2, jpjm1 
    11241150          DO ji = 2, jpim1 
    1125             zu(ji,jj,jk) = zu(ji,jj,jk) + 0.5_wp * e3u_n(ji,jj,jk) 
    1126             zv(ji,jj,jk) = zv(ji,jj,jk) + 0.5_wp * e3v_n(ji,jj,jk) 
    1127           END DO 
    1128         END DO 
    1129       END DO 
    1130  
    1131       DO jk = 1, jpkm1 
    1132         DO jj = 2, jpjm1 
    1133           DO ji = 2, jpim1 
    1134             zu(ji,jj,jk) = MIN(  zu(ji,jj,jk) , MAX( -zdept(ji,jj,jk) , -zdept(ji+1,jj,jk) )  ) 
    1135             zu(ji,jj,jk) = MAX(  zu(ji,jj,jk) , MIN( -zdept(ji,jj,jk) , -zdept(ji+1,jj,jk) )  ) 
    1136             zv(ji,jj,jk) = MIN(  zv(ji,jj,jk) , MAX( -zdept(ji,jj,jk) , -zdept(ji,jj+1,jk) )  ) 
    1137             zv(ji,jj,jk) = MAX(  zv(ji,jj,jk) , MIN( -zdept(ji,jj,jk) , -zdept(ji,jj+1,jk) )  ) 
    1138           END DO 
    1139         END DO 
    1140       END DO 
    1141  
    1142  
    1143       DO jk = 1, jpkm1 
    1144         DO jj = 2, jpjm1 
    1145           DO ji = 2, jpim1 
    1146             zpwes = 0._wp; zpwed = 0._wp 
    1147             zpnss = 0._wp; zpnsd = 0._wp 
     1151            zpwes = 0._wp   ;   zpwed = 0._wp 
     1152            zpnss = 0._wp   ;   zpnsd = 0._wp 
    11481153            zuijk = zu(ji,jj,jk) 
    11491154            zvijk = zv(ji,jj,jk) 
     
    11761181               DO WHILE ( -zdept(jid,jj,jk1) < zuijk ) 
    11771182                 IF( jk1 == 1 ) THEN 
    1178                    zdeps = zdept(jid,jj,1) + MIN(zuijk, sshn(jid,jj)*znad) 
     1183                   zdeps = zdept(jid,jj,1) + MIN(zuijk, ssh(jid,jj,Nnn)*znad) 
    11791184                   zrhdt1 = zrhh(jid,jj,1) - interp3(zdept(jid,jj,1), asp(jid,jj,1), & 
    11801185                                                     bsp(jid,jj,1),   csp(jid,jj,1), & 
     
    11961201               IF( .NOT.ln_linssh ) THEN 
    11971202                 zdpdx2 = zcoef0 * r1_e1u(ji,jj) * & 
    1198                     &    ( REAL(jis-jid, wp) * (zpwes + zpwed) + (sshn(ji+1,jj)-sshn(ji,jj)) ) 
     1203                    &    ( REAL(jis-jid, wp) * (zpwes + zpwed) + (ssh(ji+1,jj,Nnn)-ssh(ji,jj,Nnn)) ) 
    11991204                ELSE 
    12001205                 zdpdx2 = zcoef0 * r1_e1u(ji,jj) * REAL(jis-jid, wp) * (zpwes + zpwed) 
     
    12341239               DO WHILE ( -zdept(ji,jjd,jk1) < zvijk ) 
    12351240                 IF( jk1 == 1 ) THEN 
    1236                    zdeps = zdept(ji,jjd,1) + MIN(zvijk, sshn(ji,jjd)*znad) 
     1241                   zdeps = zdept(ji,jjd,1) + MIN(zvijk, ssh(ji,jjd,Nnn)*znad) 
    12371242                   zrhdt1 = zrhh(ji,jjd,1) - interp3(zdept(ji,jjd,1), asp(ji,jjd,1), & 
    12381243                                                     bsp(ji,jjd,1),   csp(ji,jjd,1), & 
     
    12551260               IF( .NOT.ln_linssh ) THEN 
    12561261                  zdpdy2 = zcoef0 * r1_e2v(ji,jj) * & 
    1257                           ( REAL(jjs-jjd, wp) * (zpnss + zpnsd) + (sshn(ji,jj+1)-sshn(ji,jj)) ) 
     1262                          ( REAL(jjs-jjd, wp) * (zpnss + zpnsd) + (ssh(ji,jj+1,Nnn)-ssh(ji,jj,Nnn)) ) 
    12581263               ELSE 
    12591264                  zdpdy2 = zcoef0 * r1_e2v(ji,jj) * REAL(jjs-jjd, wp) * (zpnss + zpnsd ) 
Note: See TracChangeset for help on using the changeset viewer.