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 7351 for branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:04:10+01:00 (7 years ago)
Author:
emanuelaclementi
Message:

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r5836 r7351  
    102102 
    103103   !! * Substitutions 
    104 #  include "domzgr_substitute.h90" 
    105104#  include "vectopt_loop_substitute.h90" 
    106105   !!---------------------------------------------------------------------- 
     
    204203               avmu(ji,jj,jk) = avmu(ji,jj,jk) * ( un(ji,jj,jk-1) - un(ji,jj,jk) )   & 
    205204                  &                            * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) )   & 
    206                   &                            / (  fse3uw_n(ji,jj,jk)               & 
    207                   &                            *    fse3uw_b(ji,jj,jk) ) 
     205                  &                            / (  e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) ) 
    208206               avmv(ji,jj,jk) = avmv(ji,jj,jk) * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) )   & 
    209207                  &                            * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) )   & 
    210                   &                            / (  fse3vw_n(ji,jj,jk)               & 
    211                   &                            *    fse3vw_b(ji,jj,jk) ) 
     208                  &                            / (  e3vw_n(ji,jj,jk) * e3vw_b(ji,jj,jk) ) 
    212209               eps(ji,jj,jk)  = rc03 * en(ji,jj,jk) * SQRT(en(ji,jj,jk)) / mxln(ji,jj,jk) 
    213210            END DO 
     
    226223            DO jj = 2, jpjm1  
    227224               DO ji = fs_2, fs_jpim1   ! vector opt. 
    228                   zup   = mxln(ji,jj,jk) * fsdepw(ji,jj,mbkt(ji,jj)+1) 
    229                   zdown = vkarmn * fsdepw(ji,jj,jk) * ( -fsdepw(ji,jj,jk) + fsdepw(ji,jj,mbkt(ji,jj)+1) ) 
     225                  zup   = mxln(ji,jj,jk) * gdepw_n(ji,jj,mbkt(ji,jj)+1) 
     226                  zdown = vkarmn * gdepw_n(ji,jj,jk) * ( -gdepw_n(ji,jj,jk) + gdepw_n(ji,jj,mbkt(ji,jj)+1) ) 
    230227                  zcoef = ( zup / MAX( zdown, rsmall ) ) 
    231228                  zwall (ji,jj,jk) = ( 1._wp + re2 * zcoef*zcoef ) * tmask(ji,jj,jk) 
     
    284281               ! lower diagonal 
    285282               z_elem_a(ji,jj,jk) = zcof * ( avm  (ji,jj,jk  ) + avm  (ji,jj,jk-1) )   & 
    286                   &                      / ( fse3t(ji,jj,jk-1) * fse3w(ji,jj,jk  ) ) 
     283                  &                      / ( e3t_n(ji,jj,jk-1) * e3w_n(ji,jj,jk  ) ) 
    287284               ! 
    288285               ! upper diagonal 
    289286               z_elem_c(ji,jj,jk) = zcof * ( avm  (ji,jj,jk+1) + avm  (ji,jj,jk  ) )   & 
    290                   &                      / ( fse3t(ji,jj,jk  ) * fse3w(ji,jj,jk) ) 
     287                  &                      / ( e3t_n(ji,jj,jk  ) * e3w_n(ji,jj,jk) ) 
    291288               ! 
    292289               ! diagonal 
     
    320317      !  
    321318      ! One level below 
    322       en(:,:,2) = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1 * ((zhsro(:,:)+fsdepw(:,:,2)) & 
     319      en(:,:,2) = rc02r * ustars2(:,:) * (1._wp + rsbc_tke1 * ((zhsro(:,:)+gdepw_n(:,:,2)) & 
    323320         &               / zhsro(:,:) )**(1.5_wp*ra_sf))**(2._wp/3._wp) 
    324321      en(:,:,2) = MAX(en(:,:,2), rn_emin ) 
     
    341338      z_elem_b(:,:,2) = z_elem_b(:,:,2) +  z_elem_a(:,:,2) ! Remove z_elem_a from z_elem_b 
    342339      z_elem_a(:,:,2) = 0._wp 
    343       zkar(:,:)       = (rl_sf + (vkarmn-rl_sf)*(1.-exp(-rtrans*fsdept(:,:,1)/zhsro(:,:)) )) 
     340      zkar(:,:)       = (rl_sf + (vkarmn-rl_sf)*(1.-exp(-rtrans*gdept_n(:,:,1)/zhsro(:,:)) )) 
    344341      zflxs(:,:)      = rsbc_tke2 * ustars2(:,:)**1.5_wp * zkar(:,:) & 
    345           &                       * ((zhsro(:,:)+fsdept(:,:,1)) / zhsro(:,:) )**(1.5_wp*ra_sf) 
    346  
    347       en(:,:,2) = en(:,:,2) + zflxs(:,:)/fse3w(:,:,2) 
     342          &                       * ((zhsro(:,:)+gdept_n(:,:,1)) / zhsro(:,:) )**(1.5_wp*ra_sf) 
     343 
     344      en(:,:,2) = en(:,:,2) + zflxs(:,:)/e3w_n(:,:,2) 
    348345      ! 
    349346      ! 
     
    508505               ! lower diagonal 
    509506               z_elem_a(ji,jj,jk) = zcof * ( avm  (ji,jj,jk  ) + avm  (ji,jj,jk-1) )   & 
    510                   &                      / ( fse3t(ji,jj,jk-1) * fse3w(ji,jj,jk  ) ) 
     507                  &                      / ( e3t_n(ji,jj,jk-1) * e3w_n(ji,jj,jk  ) ) 
    511508               ! upper diagonal 
    512509               z_elem_c(ji,jj,jk) = zcof * ( avm  (ji,jj,jk+1) + avm  (ji,jj,jk  ) )   & 
    513                   &                      / ( fse3t(ji,jj,jk  ) * fse3w(ji,jj,jk) ) 
     510                  &                      / ( e3t_n(ji,jj,jk  ) * e3w_n(ji,jj,jk) ) 
    514511               ! diagonal 
    515512               z_elem_b(ji,jj,jk) = 1._wp - z_elem_a(ji,jj,jk) - z_elem_c(ji,jj,jk)  & 
     
    539536      ! 
    540537      ! One level below 
    541       zkar(:,:)       = (rl_sf + (vkarmn-rl_sf)*(1._wp-exp(-rtrans*fsdepw(:,:,2)/zhsro(:,:) ))) 
    542       zdep(:,:)       = (zhsro(:,:) + fsdepw(:,:,2)) * zkar(:,:) 
     538      zkar(:,:)       = (rl_sf + (vkarmn-rl_sf)*(1._wp-exp(-rtrans*gdepw_n(:,:,2)/zhsro(:,:) ))) 
     539      zdep(:,:)       = (zhsro(:,:) + gdepw_n(:,:,2)) * zkar(:,:) 
    543540      psi (:,:,2)     = rc0**rpp * en(:,:,2)**rmm * zdep(:,:)**rnn * tmask(:,:,1) 
    544541      z_elem_a(:,:,2) = 0._wp 
     
    561558      ! 
    562559      ! Set psi vertical flux at the surface: 
    563       zkar(:,:) = rl_sf + (vkarmn-rl_sf)*(1._wp-exp(-rtrans*fsdept(:,:,1)/zhsro(:,:) )) ! Lengh scale slope 
    564       zdep(:,:) = ((zhsro(:,:) + fsdept(:,:,1)) / zhsro(:,:))**(rmm*ra_sf) 
     560      zkar(:,:) = rl_sf + (vkarmn-rl_sf)*(1._wp-exp(-rtrans*gdept_n(:,:,1)/zhsro(:,:) )) ! Lengh scale slope 
     561      zdep(:,:) = ((zhsro(:,:) + gdept_n(:,:,1)) / zhsro(:,:))**(rmm*ra_sf) 
    565562      zflxs(:,:) = (rnn + rsbc_tke1 * (rnn + rmm*ra_sf) * zdep(:,:))*(1._wp + rsbc_tke1*zdep(:,:))**(2._wp*rmm/3._wp-1_wp) 
    566563      zdep(:,:) =  rsbc_psi1 * (zwall_psi(:,:,1)*avm(:,:,1)+zwall_psi(:,:,2)*avm(:,:,2)) * & 
    567              & ustars2(:,:)**rmm * zkar(:,:)**rnn * (zhsro(:,:) + fsdept(:,:,1))**(rnn-1.) 
     564             & ustars2(:,:)**rmm * zkar(:,:)**rnn * (zhsro(:,:) + gdept_n(:,:,1))**(rnn-1.) 
    568565      zflxs(:,:) = zdep(:,:) * zflxs(:,:) 
    569       psi(:,:,2) = psi(:,:,2) + zflxs(:,:) / fse3w(:,:,2) 
     566      psi(:,:,2) = psi(:,:,2) + zflxs(:,:) / e3w_n(:,:,2) 
    570567 
    571568      !    
     
    593590               ! 
    594591               ! Just above last level, Dirichlet condition again (GOTM like) 
    595                zdep(ji,jj) = vkarmn * ( rn_bfrz0 + fse3t(ji,jj,ibotm1) ) 
     592               zdep(ji,jj) = vkarmn * ( rn_bfrz0 + e3t_n(ji,jj,ibotm1) ) 
    596593               psi (ji,jj,ibotm1) = rc0**rpp * en(ji,jj,ibot  )**rmm * zdep(ji,jj)**rnn 
    597594               z_elem_a(ji,jj,ibotm1) = 0._wp 
     
    621618               ! 
    622619               ! Set psi vertical flux at the bottom: 
    623                zdep(ji,jj) = rn_bfrz0 + 0.5_wp*fse3t(ji,jj,ibotm1) 
     620               zdep(ji,jj) = rn_bfrz0 + 0.5_wp*e3t_n(ji,jj,ibotm1) 
    624621               zflxb = rsbc_psi2 * ( avm(ji,jj,ibot) + avm(ji,jj,ibotm1) )   & 
    625622                  &  * (0.5_wp*(en(ji,jj,ibot)+en(ji,jj,ibotm1)))**rmm * zdep(ji,jj)**(rnn-1._wp) 
    626                psi(ji,jj,ibotm1) = psi(ji,jj,ibotm1) + zflxb / fse3w(ji,jj,ibotm1) 
     623               psi(ji,jj,ibotm1) = psi(ji,jj,ibotm1) + zflxb / e3w_n(ji,jj,ibotm1) 
    627624            END DO 
    628625         END DO 
Note: See TracChangeset for help on using the changeset viewer.