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 5845 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90 – NEMO

Ignore:
Timestamp:
2015-10-31T08:40:45+01:00 (8 years ago)
Author:
gm
Message:

#1613: vvl by default: suppression of domzgr_substitute.h90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r5836 r5845  
    3636 
    3737   !! * Substitutions 
    38 #  include "domzgr_substitute.h90" 
    3938#  include "vectopt_loop_substitute.h90" 
    4039   !!---------------------------------------------------------------------- 
     
    103102               ikbu = mbku(ji,jj)       ! ocean bottom level at u- and v-points  
    104103               ikbv = mbkv(ji,jj)       ! (deepest ocean u- and v-points) 
    105                avmu(ji,jj,ikbu+1) = -bfrua(ji,jj) * fse3uw(ji,jj,ikbu+1) 
    106                avmv(ji,jj,ikbv+1) = -bfrva(ji,jj) * fse3vw(ji,jj,ikbv+1) 
     104               avmu(ji,jj,ikbu+1) = -bfrua(ji,jj) * e3uw_n(ji,jj,ikbu+1) 
     105               avmv(ji,jj,ikbv+1) = -bfrva(ji,jj) * e3vw_n(ji,jj,ikbv+1) 
    107106            END DO 
    108107         END DO 
     
    112111                  ikbu = miku(ji,jj)       ! ocean top level at u- and v-points  
    113112                  ikbv = mikv(ji,jj)       ! (first wet ocean u- and v-points) 
    114                   IF (ikbu .GE. 2) avmu(ji,jj,ikbu) = -tfrua(ji,jj) * fse3uw(ji,jj,ikbu) 
    115                   IF (ikbv .GE. 2) avmv(ji,jj,ikbv) = -tfrva(ji,jj) * fse3vw(ji,jj,ikbv) 
     113                  IF (ikbu .GE. 2) avmu(ji,jj,ikbu) = -tfrua(ji,jj) * e3uw_n(ji,jj,ikbu) 
     114                  IF (ikbv .GE. 2) avmv(ji,jj,ikbv) = -tfrva(ji,jj) * e3vw_n(ji,jj,ikbv) 
    116115               END DO 
    117116            END DO 
     
    127126      ELSE                                            ! applied on thickness weighted velocity 
    128127         DO jk = 1, jpkm1 
    129             ua(:,:,jk) = (          ub(:,:,jk) * fse3u_b(:,:,jk)      & 
    130                &           + p2dt * ua(:,:,jk) * fse3u_n(:,:,jk)  )   & 
    131                &                               / fse3u_a(:,:,jk) * umask(:,:,jk) 
    132             va(:,:,jk) = (          vb(:,:,jk) * fse3v_b(:,:,jk)      & 
    133                &           + p2dt * va(:,:,jk) * fse3v_n(:,:,jk)  )   & 
    134                &                               / fse3v_a(:,:,jk) * vmask(:,:,jk) 
     128            ua(:,:,jk) = (          ub(:,:,jk) * e3u_b(:,:,jk)      & 
     129               &           + p2dt * ua(:,:,jk) * e3u_n(:,:,jk)  )   & 
     130               &                               / e3u_a(:,:,jk) * umask(:,:,jk) 
     131            va(:,:,jk) = (          vb(:,:,jk) * e3v_b(:,:,jk)      & 
     132               &           + p2dt * va(:,:,jk) * e3v_n(:,:,jk)  )   & 
     133               &                               / e3v_a(:,:,jk) * vmask(:,:,jk) 
    135134         END DO 
    136135      ENDIF 
     
    147146               ikbu = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
    148147               ikbv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
    149                ze3ua =  ( 1._wp - r_vvl ) * fse3u_n(ji,jj,ikbu) + r_vvl   * fse3u_a(ji,jj,ikbu) 
    150                ze3va =  ( 1._wp - r_vvl ) * fse3v_n(ji,jj,ikbv) + r_vvl   * fse3v_a(ji,jj,ikbv) 
     148               ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,ikbu) + r_vvl   * e3u_a(ji,jj,ikbu) 
     149               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikbv) + r_vvl   * e3v_a(ji,jj,ikbv) 
    151150               ua(ji,jj,ikbu) = ua(ji,jj,ikbu) + p2dt * bfrua(ji,jj) * ua_b(ji,jj) / ze3ua 
    152151               va(ji,jj,ikbv) = va(ji,jj,ikbv) + p2dt * bfrva(ji,jj) * va_b(ji,jj) / ze3va 
     
    158157                  ikbu = miku(ji,jj)         ! top ocean level at u- and v-points  
    159158                  ikbv = mikv(ji,jj)         ! (first wet ocean u- and v-points) 
    160                   ze3ua =  ( 1._wp - r_vvl ) * fse3u_n(ji,jj,ikbu) + r_vvl   * fse3u_a(ji,jj,ikbu) 
    161                   ze3va =  ( 1._wp - r_vvl ) * fse3v_n(ji,jj,ikbv) + r_vvl   * fse3v_a(ji,jj,ikbv) 
     159                  ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,ikbu) + r_vvl   * e3u_a(ji,jj,ikbu) 
     160                  ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikbv) + r_vvl   * e3v_a(ji,jj,ikbv) 
    162161                  ua(ji,jj,ikbu) = ua(ji,jj,ikbu) + p2dt * tfrua(ji,jj) * ua_b(ji,jj) / ze3ua 
    163162                  va(ji,jj,ikbv) = va(ji,jj,ikbv) + p2dt * tfrva(ji,jj) * va_b(ji,jj) / ze3va 
     
    177176         DO jj = 2, jpjm1  
    178177            DO ji = fs_2, fs_jpim1   ! vector opt. 
    179                ze3ua =  ( 1._wp - r_vvl ) * fse3u_n(ji,jj,jk) + r_vvl   * fse3u_a(ji,jj,jk)   ! after scale factor at T-point 
     178               ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,jk) + r_vvl   * e3u_a(ji,jj,jk)   ! after scale factor at T-point 
    180179               zcoef = - p2dt / ze3ua       
    181                zzwi          = zcoef * avmu  (ji,jj,jk  ) / fse3uw(ji,jj,jk  ) 
     180               zzwi          = zcoef * avmu  (ji,jj,jk  ) / e3uw_n(ji,jj,jk  ) 
    182181               zwi(ji,jj,jk) = zzwi  * wumask(ji,jj,jk  ) 
    183                zzws          = zcoef * avmu  (ji,jj,jk+1) / fse3uw(ji,jj,jk+1)  
     182               zzws          = zcoef * avmu  (ji,jj,jk+1) / e3uw_n(ji,jj,jk+1)  
    184183               zws(ji,jj,jk) = zzws  * wumask(ji,jj,jk+1) 
    185184               zwd(ji,jj,jk) = 1._wp - zzwi - zzws 
     
    220219         DO ji = fs_2, fs_jpim1   ! vector opt. 
    221220#if defined key_dynspg_ts 
    222             ze3ua =  ( 1._wp - r_vvl ) * fse3u_n(ji,jj,1) + r_vvl   * fse3u_a(ji,jj,1)  
     221            ze3ua =  ( 1._wp - r_vvl ) * e3u_n(ji,jj,1) + r_vvl   * e3u_a(ji,jj,1)  
    223222            ua(ji,jj,1) = ua(ji,jj,1) + p2dt * 0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   & 
    224223               &                                      / ( ze3ua * rau0 ) * umask(ji,jj,1)  
     
    226225            ua(ji,jj,1) = ub(ji,jj,1) & 
    227226               &                   + p2dt *(ua(ji,jj,1) +  0.5_wp * ( utau_b(ji,jj) + utau(ji,jj) )   & 
    228                &                                      / ( fse3u(ji,jj,1) * rau0     ) * umask(ji,jj,1) )  
     227               &                                      / ( e3u_n(ji,jj,1) * rau0     ) * umask(ji,jj,1) )  
    229228#endif 
    230229         END DO 
     
    276275         DO jj = 2, jpjm1    
    277276            DO ji = fs_2, fs_jpim1   ! vector opt. 
    278                ze3va =  ( 1._wp - r_vvl ) * fse3v_n(ji,jj,jk)  + r_vvl * fse3v_a(ji,jj,jk)   ! after scale factor at T-point 
     277               ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,jk)  + r_vvl * e3v_a(ji,jj,jk)   ! after scale factor at T-point 
    279278               zcoef = - p2dt / ze3va 
    280                zzwi          = zcoef * avmv (ji,jj,jk  ) / fse3vw(ji,jj,jk  ) 
     279               zzwi          = zcoef * avmv (ji,jj,jk  ) / e3vw_n(ji,jj,jk  ) 
    281280               zwi(ji,jj,jk) =  zzwi * wvmask(ji,jj,jk) 
    282                zzws          = zcoef * avmv (ji,jj,jk+1) / fse3vw(ji,jj,jk+1) 
     281               zzws          = zcoef * avmv (ji,jj,jk+1) / e3vw_n(ji,jj,jk+1) 
    283282               zws(ji,jj,jk) =  zzws * wvmask(ji,jj,jk+1) 
    284283               zwd(ji,jj,jk) = 1._wp - zzwi - zzws 
     
    319318         DO ji = fs_2, fs_jpim1   ! vector opt. 
    320319#if defined key_dynspg_ts             
    321             ze3va =  ( 1._wp - r_vvl ) * fse3v_n(ji,jj,1) + r_vvl   * fse3v_a(ji,jj,1)  
     320            ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,1) + r_vvl   * e3v_a(ji,jj,1)  
    322321            va(ji,jj,1) = va(ji,jj,1) + p2dt * 0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) )   & 
    323322               &                                      / ( ze3va * rau0 )  
     
    325324            va(ji,jj,1) = vb(ji,jj,1) & 
    326325               &                   + p2dt *(va(ji,jj,1) +  0.5_wp * ( vtau_b(ji,jj) + vtau(ji,jj) )   & 
    327                &                                                       / ( fse3v(ji,jj,1) * rau0     )  ) 
     326               &                                                       / ( e3v_n(ji,jj,1) * rau0     )  ) 
    328327#endif 
    329328         END DO 
Note: See TracChangeset for help on using the changeset viewer.