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 10030 for NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM – NEMO

Ignore:
Timestamp:
2018-08-03T10:18:16+02:00 (6 years ago)
Author:
gm
Message:

#1911 (ENHANCE-04): RK3 branch - step II.3 remove e3uw_$ e3vw_$, except e3.w_0 and use only after e3 in dyn/trazdf

Location:
NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/dom_oce.F90

    r10023 r10030  
    135135   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    136136   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    137    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    138    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
     137   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::    e3uw_0                                !: uw-vert. scale factor [m] 
     138   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::    e3vw_0                                !: vw-vert. scale factor [m] 
    139139   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    140140 
     
    270270         &      e3t(jpi,jpj,jpk,Nt) , e3u(jpi,jpj,jpk,Nt) , e3v(jpi,jpj,jpk,Nt) ,                                          & 
    271271         !                                                          ! 
    272          &      e3uw_0(jpi,jpj,jpk) , e3vw_0(jpi,jpj,jpk) ,         & 
    273          &      e3uw_b(jpi,jpj,jpk) , e3vw_b(jpi,jpj,jpk) ,         &                
    274          &      e3uw_n(jpi,jpj,jpk) , e3vw_n(jpi,jpj,jpk) ,     STAT=ierr(5) )                        
     272         &      e3uw_0(jpi,jpj,jpk) , e3vw_0(jpi,jpj,jpk) ,     STAT=ierr(5) )                        
    275273         ! 
    276274      ALLOCATE( ht_0(jpi,jpj)    , hu_0(jpi,jpj)   , hv_0(jpi,jpj)    , hf_0(jpi,jpj)    ,                     & 
  • NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domain.F90

    r10023 r10030  
    170170                                 gde3w_n = gde3w_0   !        ---          ! grid-points 
    171171         !                   !                       !                     !                                               
    172           e3t_b =   e3t_0   ;     e3t_n =   e3t_0   ;   e3t_a =  e3t_0    !  scale  
    173           e3u_b =   e3u_0   ;     e3u_n =   e3u_0   ;   e3u_a =  e3u_0    ! factors 
    174           e3v_b =   e3v_0   ;     e3v_n =   e3v_0   ;   e3v_a =  e3v_0    ! 
     172           e3t_b =   e3t_0   ;     e3t_n =   e3t_0   ;   e3t_a =  e3t_0    !  scale  
     173           e3u_b =   e3u_0   ;     e3u_n =   e3u_0   ;   e3u_a =  e3u_0    ! factors 
     174           e3v_b =   e3v_0   ;     e3v_n =   e3v_0   ;   e3v_a =  e3v_0    ! 
    175175                                   e3f_n =   e3f_0   !        ---          ! 
    176           e3w_b  =   e3w_0   ;     e3w_n =   e3w_0   !        ---          ! 
    177          e3uw_b  =  e3uw_0   ;    e3uw_n =  e3uw_0   !        ---          ! 
    178          e3vw_b  =  e3vw_0   ;    e3vw_n =  e3vw_0   !        ---          ! 
     176           e3w_b =   e3w_0   ;     e3w_n =   e3w_0   !        ---          ! 
    179177         !                   ! 
    180178                                    ht_n =    ht_0   !                     ! water column 
  • NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domvvl.F90

    r10023 r10030  
    144144      CALL ssh2e3_before               ! set:      hu , hv , r1_hu, r1_hv  
    145145      !                                !      e3t, e3u , e3v              (from 1 to jpkm1) 
    146       !                                !      e3w, e3uw, e3vw             (from 1 to jpk  ) 
    147       !                                !      gdept, gdepw                (from 1 to jpk  ) 
     146      !                                !      e3w, gdept, gdepw           (from 1 to jpk  ) 
    148147      ! 
    149148      !                                ! set jpk level one to the e3._0 values 
     
    153152      CALL ssh2e3_now                  ! set: ht , hu , hv , r1_hu, r1_hv 
    154153      !                                !      e3t, e3u , e3v, e3f         (from 1 to jpkm1) 
    155       !                                !      e3w, e3uw, e3vw             (from 1 to jpk  ) 
    156       !                                !      gdept, gdepw, gde3w         (from 1 to jpk  ) 
     154      !                                !      e3w, gdept, gdepw, gde3w    (from 1 to jpk  ) 
    157155      ! 
    158156      !                                ! set one for all last level to the e3._0 value 
    159       e3t_n(:,:,jpk) = e3t_0(:,:,jpk)  ;   e3u_n(:,:,jpk) =  e3u_0(:,:,jpk)  ;   e3v_n(:,:,jpk) =  e3v_0(:,:,jpk) 
    160       e3f_n(:,:,jpk) = e3f_0(:,:,jpk) 
     157      e3t_n(:,:,jpk) = e3t_0(:,:,jpk)  ;   e3u_n(:,:,jpk) =  e3u_0(:,:,jpk) 
     158      e3f_n(:,:,jpk) = e3f_0(:,:,jpk)  ;   e3v_n(:,:,jpk) =  e3v_0(:,:,jpk) 
    161159      ! 
    162160      !                          !* AFTER fields : (last level for OPA, 3D required for AGRIF initialisation) 
     
    215213      !     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    216214      !     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    217       !    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    218       !    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
    219215      !     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    220216      ! 
     
    332328      ! - JC - hu_b, hv_b, hur_b, hvr_b also 
    333329      ! 
    334       ! - GM - to be updated :   e3f_n,  e3w_n , e3uw_n , e3vw_n  
    335       !                                  e3w_b , e3uw_b , e3vw_b 
     330      ! - GM - to be updated :   e3f_n   ,  e3w_n  , e3w_b 
    336331      !                          gdept_n , gdepw_n , gde3w_n 
    337332      !                          ht_n 
     
    356351      ! 
    357352      !                    !==  before  ==! 
    358       !                                            !* ssh at u- and v-points) 
    359       DO jj = 2, jpjm1   ;   DO ji = 2, jpim1 
    360          zsshu_h(ji,jj) = 0.5_wp  * ( ssh(ji,jj,Nbb) + ssh(ji+1,jj  ,Nbb) ) * ssumask(ji,jj) 
    361          zsshv_h(ji,jj) = 0.5_wp  * ( ssh(ji,jj,Nbb) + ssh(ji  ,jj+1,Nbb) ) * ssvmask(ji,jj) 
    362       END DO             ;   END DO       
    363       CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp ) 
    364       ! 
    365       !                                            !*  e3w_b , e3uw_b , e3vw_b 
     353      !                                            !*  e3w_b 
    366354      zssht_h(:,:) = ssh    (:,:,Nbb) * r1_ht_0(:,:)     ! w-point 
    367       zsshu_h(:,:) = zsshu_h(:,:)     * r1_hu_0(:,:)     ! uw-point 
    368       zsshv_h(:,:) = zsshv_h(:,:)     * r1_hv_0(:,:)     ! vw-point 
    369       DO jk = 1, jpkm1 
    370           e3w_b(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 
    371          e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 
    372          e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 
     355      ! 
     356      e3w_b(:,:,1) =  e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) *  tmask(:,:,1) ) 
     357      DO jk = 2, jpk 
     358         e3w_b(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) ,  tmask(:,:,jk) ) ) 
    373359      END DO 
    374360      !  
     
    388374      !       
    389375      !                    !==   now    ==! 
    390       !                                            !* ssh at u- and v-points) 
    391       DO jj = 1, jpjm1   ;   DO ji = 1, jpim1            ! start from 1 for f-point 
    392          zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji+1,jj  ,Nnn) ) * ssumask(ji,jj) 
    393          zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn) ) * ssvmask(ji,jj) 
    394          zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn)   &  
    395             &                       + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 
    396       END DO             ;   END DO       
    397       CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp , zsshf_h(:,:),'F', 1._wp )       
    398       ! 
    399       !                                            !* e3w_n , e3uw_n , e3vw_n, e3f_n  
    400       zssht_h(:,:) = ssh    (:,:,Nnn) * r1_ht_0(:,:)     ! t- & w-point 
    401       zsshu_h(:,:) = zsshu_h(:,:)     * r1_hu_0(:,:)     ! uw-point 
    402       zsshv_h(:,:) = zsshv_h(:,:)     * r1_hv_0(:,:)     ! vw-point 
    403       zsshf_h(:,:) = zsshf_h(:,:)     * r1_hf_0(:,:)     ! f-point 
     376      !                                            !* ssh at f-points 
     377      DO jj = 1, jpjm1 
     378         DO ji = 1, jpim1            ! start from 1 for f-point 
     379            zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn)   &  
     380               &                       + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 
     381         END DO 
     382      END DO       
     383      CALL lbc_lnk( zsshf_h(:,:),'F', 1._wp )       
     384      ! 
     385      !                                            !* e3f_n  
     386      zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:)     ! f-point 
     387      ! 
    404388      DO jk = 1, jpkm1 
    405          e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,jk) ) 
    406          e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,jk) ) 
    407           e3f_n(:,:,jk) =  e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) *  fmask(:,:,jk) ) 
     389          e3f_n(:,:,jk) =  e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 
    408390      END DO       
    409       !  
    410       zssht_h(:,:) = 1._wp + zssht_h(:,:)          !* gdept , gdepw , gde3w 
     391      ! 
     392      !                                            !* gdept_n , gdepw_n , gde3w_n 
     393      zssht_h(:,:) = 1._wp + ssh(:,:,Nnn) * r1_ht_0(:,:)  
    411394      ! 
    412395      IF( ln_isfcav ) THEN    ! ISF cavities : ssh scaling not applied over the iceshelf thickness  
     
    633616      !     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    634617      !     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    635       !    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    636       !    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
    637618      !     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    638619      ! 
     
    658639      ! 
    659640      !                             !==  ssh at u- and v-points  ==! 
    660       ! 
    661       DO jj = 1, jpjm1                    ! start from 1 due to f-point 
    662          DO ji = 1, jpim1 
     641      DO jj = 1, jpjm1 
     642         DO ji = 1, jpim1                 ! start from 1 due to f-point 
    663643            zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji+1,jj  ,Nnn) ) * ssumask(ji,jj) 
    664644            zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn) ) * ssvmask(ji,jj) 
     
    670650      ! 
    671651      !                             !==  ht, hu and hv  == !   (and their inverse) 
    672       ! 
    673652      ht_n   (:,:) = ht_0(:,:) +  ssh   (:,:,Nnn) 
    674653      hu_n   (:,:) = hu_0(:,:) + zsshu_h(:,:) 
     
    678657      !       
    679658      !                             !==  ssh / h  factor at t-, u- ,v- & f-points  ==! 
    680       ! 
    681659      zssht_h(:,:) =  ssh   (:,:,Nnn) * r1_ht_0(:,:) 
    682660      zsshu_h(:,:) = zsshu_h(:,:)     * r1_hu_0(:,:) 
     
    684662      zsshf_h(:,:) = zsshf_h(:,:)     * r1_hf_0(:,:) 
    685663      ! 
    686       !                             !==  e3t  ,  e3u  ,  e3v  ,  e3f  ==! 
    687       !       
     664      !                             !==  e3t  ,  e3u  ,  e3v  ,  e3f  ,  e3w  ==! 
    688665      DO jk = 1, jpkm1 
    689666          e3t_n(:,:,jk) =  e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 
     
    692669          e3f_n(:,:,jk) =  e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 
    693670      END DO 
    694       !       
    695       !                             !==  e3w  ,  e3uw  ,  e3vw  ==! 
    696       ! 
    697        e3w_n(:,:,1) =  e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) *  tmask(:,:,1) ) 
    698       e3uw_n(:,:,1) = e3uw_0(:,:,1) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,1) ) 
    699       e3vw_n(:,:,1) = e3vw_0(:,:,1) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,1) ) 
     671      e3w_n(:,:,1) = e3w_0(:,:,1) * (  1._wp + zssht_h(:,:) *  tmask(:,:,1)  ) 
    700672      DO jk = 2, jpk 
    701           e3w_n(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX(  tmask(:,:,jk-1) ,  tmask(:,:,jk) ) ) 
    702          e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * MAX( wumask(:,:,jk-1) , wumask(:,:,jk) ) ) 
    703          e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * MAX( wvmask(:,:,jk-1) , wvmask(:,:,jk) ) ) 
     673         e3w_n(:,:,jk) = e3w_0(:,:,jk) * (  1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) )  ) 
    704674      END DO 
    705675      ! 
     
    733703      !     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    734704      !     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    735       !    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    736       !    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
    737705      !     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    738706      ! 
     
    778746      zsshv_h(:,:) = zsshv_h(:,:)     * r1_hv_0(:,:) 
    779747      ! 
    780       !                             !==  e3t  ,  e3u  ,  e3v  ==! 
    781       !       
     748      !                             !==  e3t  ,  e3u  ,  e3v ,  e3w  ==! 
    782749      DO jk = 1, jpkm1 
    783750          e3t_b(:,:,jk) =  e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 
     
    785752          e3v_b(:,:,jk) =  e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 
    786753      END DO 
    787       !       
    788       !                             !==  e3w  ,  e3uw  ,  e3vw  ==! 
    789       ! 
    790        e3w_b(:,:,1) =  e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) *  tmask(:,:,1) ) 
    791       e3uw_b(:,:,1) = e3uw_0(:,:,1) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,1) ) 
    792       e3vw_b(:,:,1) = e3vw_0(:,:,1) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,1) ) 
     754      e3w_b(:,:,1) = e3w_0(:,:,1) * (  1._wp + zssht_h(:,:) *  tmask(:,:,1)  ) 
    793755      DO jk = 2, jpk 
    794           e3w_b(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX(  tmask(:,:,jk-1) ,  tmask(:,:,jk) ) ) 
    795          e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * MAX( wumask(:,:,jk-1) , wumask(:,:,jk) ) ) 
    796          e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * MAX( wvmask(:,:,jk-1) , wvmask(:,:,jk) ) ) 
     756         e3w_b(:,:,jk) = e3w_0(:,:,jk) * (  1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) )  ) 
    797757      END DO 
    798758      !    
  • NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/domvvl_RK3.F90

    r10023 r10030  
    144144      CALL ssh2e3_before               ! set:      hu , hv , r1_hu, r1_hv  
    145145      !                                !      e3t, e3u , e3v              (from 1 to jpkm1) 
    146       !                                !      e3w, e3uw, e3vw             (from 1 to jpk  ) 
    147       !                                !      gdept, gdepw                (from 1 to jpk  ) 
     146      !                                !      e3w, gdept, gdepw           (from 1 to jpk  ) 
    148147      ! 
    149148      !                                ! set jpk level one to the e3._0 values 
     
    153152      CALL ssh2e3_now                  ! set: ht , hu , hv , r1_hu, r1_hv 
    154153      !                                !      e3t, e3u , e3v, e3f         (from 1 to jpkm1) 
    155       !                                !      e3w, e3uw, e3vw             (from 1 to jpk  ) 
    156       !                                !      gdept, gdepw, gde3w         (from 1 to jpk  ) 
     154      !                                !      e3w, gdept, gdepw, gde3w    (from 1 to jpk  ) 
    157155      ! 
    158156      !                                ! set one for all last level to the e3._0 value 
     
    215213      !     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    216214      !     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    217       !    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    218       !    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
     215      !    e3uw_0                                !: uw-vert. scale factor [m] 
     216      !    e3vw_0                                !: vw-vert. scale factor [m] 
    219217      !     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    220218      ! 
     
    332330      ! - JC - hu_b, hv_b, hur_b, hvr_b also 
    333331      ! 
    334       ! - GM - to be updated :   e3f_n,  e3w_n , e3uw_n , e3vw_n  
    335       !                                  e3w_b , e3uw_b , e3vw_b 
     332      ! - GM - to be updated :   e3f_n   ,  e3w_n  , e3w_b 
    336333      !                          gdept_n , gdepw_n , gde3w_n 
    337334      !                          ht_n 
     
    356353      ! 
    357354      !                    !==  before  ==! 
    358       !                                            !* ssh at u- and v-points) 
    359       DO jj = 2, jpjm1   ;   DO ji = 2, jpim1 
    360          zsshu_h(ji,jj) = 0.5_wp  * ( ssh(ji,jj,Nbb) + ssh(ji+1,jj  ,Nbb) ) * ssumask(ji,jj) 
    361          zsshv_h(ji,jj) = 0.5_wp  * ( ssh(ji,jj,Nbb) + ssh(ji  ,jj+1,Nbb) ) * ssvmask(ji,jj) 
    362       END DO             ;   END DO       
    363       CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp ) 
    364       ! 
    365       !                                            !*  e3w_b , e3uw_b , e3vw_b 
     355      !                                            !*  e3w_b 
    366356      zssht_h(:,:) = ssh    (:,:,Nbb) * r1_ht_0(:,:)     ! w-point 
    367       zsshu_h(:,:) = zsshu_h(:,:)     * r1_hu_0(:,:)     ! uw-point 
    368       zsshv_h(:,:) = zsshv_h(:,:)     * r1_hv_0(:,:)     ! vw-point 
    369       DO jk = 1, jpkm1 
    370           e3w_b(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk) , tmask(:,:,jk+1) ) ) 
    371          e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * umask(:,:,jk) ) 
    372          e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 
     357      ! 
     358      e3w_b(:,:,1) =  e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) *  tmask(:,:,1) ) 
     359      DO jk = 2, jpk 
     360         e3w_b(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) ,  tmask(:,:,jk) ) ) 
    373361      END DO 
    374362      !  
     
    388376      !       
    389377      !                    !==   now    ==! 
    390       !                                            !* ssh at u- and v-points) 
    391       DO jj = 1, jpjm1   ;   DO ji = 1, jpim1            ! start from 1 for f-point 
    392          zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji+1,jj  ,Nnn) ) * ssumask(ji,jj) 
    393          zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn) ) * ssvmask(ji,jj) 
    394          zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn)   &  
    395             &                       + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 
    396       END DO             ;   END DO       
    397       CALL lbc_lnk_multi( zsshu_h(:,:),'U', 1._wp , zsshv_h(:,:),'V', 1._wp , zsshf_h(:,:),'F', 1._wp )       
    398       ! 
    399       !                                            !* e3w_n , e3uw_n , e3vw_n, e3f_n  
    400       zssht_h(:,:) = ssh    (:,:,Nnn) * r1_ht_0(:,:)     ! t- & w-point 
    401       zsshu_h(:,:) = zsshu_h(:,:)     * r1_hu_0(:,:)     ! uw-point 
    402       zsshv_h(:,:) = zsshv_h(:,:)     * r1_hv_0(:,:)     ! vw-point 
    403       zsshf_h(:,:) = zsshf_h(:,:)     * r1_hf_0(:,:)     ! f-point 
     378      !                                            !* ssh at f-points 
     379      DO jj = 1, jpjm1 
     380         DO ji = 1, jpim1            ! start from 1 for f-point 
     381            zsshf_h(ji,jj) = 0.25_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn)   &  
     382               &                       + ssh(ji+1,jj,Nnn) + ssh(ji+1,jj+1,Nnn) ) * ssfmask(ji,jj) 
     383         END DO 
     384      END DO       
     385      CALL lbc_lnk( zsshf_h(:,:),'F', 1._wp )       
     386      ! 
     387      !                                            !* e3f_n  
     388      zsshf_h(:,:) = zsshf_h(:,:) * r1_hf_0(:,:)     ! f-point 
     389      ! 
    404390      DO jk = 1, jpkm1 
    405          e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,jk) ) 
    406          e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,jk) ) 
    407           e3f_n(:,:,jk) =  e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) *  fmask(:,:,jk) ) 
     391          e3f_n(:,:,jk) =  e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 
    408392      END DO       
    409       !  
    410       zssht_h(:,:) = 1._wp + zssht_h(:,:)          !* gdept , gdepw , gde3w 
     393      ! 
     394      !                                            !* gdept_n , gdepw_n , gde3w_n 
     395      zssht_h(:,:) = 1._wp + ssh(:,:,Nnn) * r1_ht_0(:,:)  
    411396      ! 
    412397      IF( ln_isfcav ) THEN    ! ISF cavities : ssh scaling not applied over the iceshelf thickness  
     
    633618      !     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    634619      !     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    635       !    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    636       !    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
     620      !    e3uw_0                                !: uw-vert. scale factor [m] 
     621      !    e3vw_0                                !: vw-vert. scale factor [m] 
    637622      !     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    638623      ! 
     
    658643      ! 
    659644      !                             !==  ssh at u- and v-points  ==! 
    660       ! 
    661       DO jj = 1, jpjm1                    ! start from 1 due to f-point 
    662          DO ji = 1, jpim1 
     645      DO jj = 1, jpjm1 
     646         DO ji = 1, jpim1                 ! start from 1 due to f-point 
    663647            zsshu_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji+1,jj  ,Nnn) ) * ssumask(ji,jj) 
    664648            zsshv_h(ji,jj) = 0.50_wp * ( ssh(ji  ,jj,Nnn) + ssh(ji  ,jj+1,Nnn) ) * ssvmask(ji,jj) 
     
    670654      ! 
    671655      !                             !==  ht, hu and hv  == !   (and their inverse) 
    672       ! 
    673656      ht_n   (:,:) = ht_0(:,:) +  ssh   (:,:,Nnn) 
    674657      hu_n   (:,:) = hu_0(:,:) + zsshu_h(:,:) 
     
    678661      !       
    679662      !                             !==  ssh / h  factor at t-, u- ,v- & f-points  ==! 
    680       ! 
    681663      zssht_h(:,:) =  ssh   (:,:,Nnn) * r1_ht_0(:,:) 
    682664      zsshu_h(:,:) = zsshu_h(:,:)     * r1_hu_0(:,:) 
     
    684666      zsshf_h(:,:) = zsshf_h(:,:)     * r1_hf_0(:,:) 
    685667      ! 
    686       !                             !==  e3t  ,  e3u  ,  e3v  ,  e3f  ==! 
    687       !       
     668      !                             !==  e3t  ,  e3u  ,  e3v  ,  e3f  ,  e3w  ==! 
    688669      DO jk = 1, jpkm1 
    689670          e3t_n(:,:,jk) =  e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 
     
    692673          e3f_n(:,:,jk) =  e3f_0(:,:,jk) * ( 1._wp + zsshf_h(:,:) * fmask(:,:,jk) ) 
    693674      END DO 
    694       !       
    695       !                             !==  e3w  ,  e3uw  ,  e3vw  ==! 
    696       ! 
    697        e3w_n(:,:,1) =  e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) *  tmask(:,:,1) ) 
    698       e3uw_n(:,:,1) = e3uw_0(:,:,1) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,1) ) 
    699       e3vw_n(:,:,1) = e3vw_0(:,:,1) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,1) ) 
     675      e3w_n(:,:,1) = e3w_0(:,:,1) * (  1._wp + zssht_h(:,:) *  tmask(:,:,1)  ) 
    700676      DO jk = 2, jpk 
    701           e3w_n(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX(  tmask(:,:,jk-1) ,  tmask(:,:,jk) ) ) 
    702          e3uw_n(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * MAX( wumask(:,:,jk-1) , wumask(:,:,jk) ) ) 
    703          e3vw_n(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * MAX( wvmask(:,:,jk-1) , wvmask(:,:,jk) ) ) 
     677         e3w_n(:,:,jk) = e3w_0(:,:,jk) * (  1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) )  ) 
    704678      END DO 
    705679      ! 
     
    733707      !     e3v_0 ,   e3v_b ,   e3v_n ,  e3v_a   !: v- vert. scale factor [m] 
    734708      !     e3w_0 ,   e3w_b ,   e3w_n ,  e3w_a   !: w- vert. scale factor [m] 
    735       !    e3uw_0 ,  e3uw_b ,  e3uw_n            !: uw-vert. scale factor [m] 
    736       !    e3vw_0 ,  e3vw_b ,  e3vw_n            !: vw-vert. scale factor [m] 
     709      !    e3uw_0                                !: uw-vert. scale factor [m] 
     710      !    e3vw_0                                !: vw-vert. scale factor [m] 
    737711      !     e3f_0           ,   e3f_n            !: f- vert. scale factor [m] 
    738712      ! 
     
    778752      zsshv_h(:,:) = zsshv_h(:,:)     * r1_hv_0(:,:) 
    779753      ! 
    780       !                             !==  e3t  ,  e3u  ,  e3v  ==! 
    781       !       
     754      !                             !==  e3t  ,  e3u  ,  e3v ,  e3w  ==! 
    782755      DO jk = 1, jpkm1 
    783756          e3t_b(:,:,jk) =  e3t_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * tmask(:,:,jk) ) 
     
    785758          e3v_b(:,:,jk) =  e3v_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * vmask(:,:,jk) ) 
    786759      END DO 
    787       !       
    788       !                             !==  e3w  ,  e3uw  ,  e3vw  ==! 
    789       ! 
    790        e3w_b(:,:,1) =  e3w_0(:,:,1) * ( 1._wp + zssht_h(:,:) *  tmask(:,:,1) ) 
    791       e3uw_b(:,:,1) = e3uw_0(:,:,1) * ( 1._wp + zsshu_h(:,:) * wumask(:,:,1) ) 
    792       e3vw_b(:,:,1) = e3vw_0(:,:,1) * ( 1._wp + zsshv_h(:,:) * wvmask(:,:,1) ) 
     760      e3w_b(:,:,1) = e3w_0(:,:,1) * (  1._wp + zssht_h(:,:) *  tmask(:,:,1)  ) 
    793761      DO jk = 2, jpk 
    794           e3w_b(:,:,jk) =  e3w_0(:,:,jk) * ( 1._wp + zssht_h(:,:) * MAX(  tmask(:,:,jk-1) ,  tmask(:,:,jk) ) ) 
    795          e3uw_b(:,:,jk) = e3uw_0(:,:,jk) * ( 1._wp + zsshu_h(:,:) * MAX( wumask(:,:,jk-1) , wumask(:,:,jk) ) ) 
    796          e3vw_b(:,:,jk) = e3vw_0(:,:,jk) * ( 1._wp + zsshv_h(:,:) * MAX( wvmask(:,:,jk-1) , wvmask(:,:,jk) ) ) 
     762         e3w_b(:,:,jk) = e3w_0(:,:,jk) * (  1._wp + zssht_h(:,:) * MAX( tmask(:,:,jk-1) , tmask(:,:,jk) )  ) 
    797763      END DO 
    798764      !    
  • NEMO/branches/2018/dev_r9838_ENHANCE04_RK3/src/OCE/DOM/iscplrst.F90

    r10023 r10030  
    102102      e3v_b (:,:,:) = e3v_n (:,:,:) 
    103103      ! 
    104       e3uw_b (:,:,:) = e3uw_n (:,:,:) 
    105       e3vw_b (:,:,:) = e3vw_n (:,:,:) 
    106104      gdept_b(:,:,:) = gdept_n(:,:,:) 
    107105      gdepw_b(:,:,:) = gdepw_n(:,:,:) 
     
    206204         CALL ssh2e3_now                  ! set: ht , hu , hv , r1_hu, r1_hv 
    207205         !                                !      e3t, e3u , e3v, e3f         (from 1 to jpkm1) 
    208          !                                !      e3w, e3uw, e3vw             (from 1 to jpk  ) 
    209          !                                !      gdept, gdepw, gde3w         (from 1 to jpk  ) 
     206         !                                !      e3w, gdept, gdepw, gde3w    (from 1 to jpk  ) 
    210207         ! 
    211208 
Note: See TracChangeset for help on using the changeset viewer.