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 4616 for branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90 – NEMO

Ignore:
Timestamp:
2014-04-06T17:28:25+02:00 (10 years ago)
Author:
gm
Message:

#1260 : see the associated wiki page for explanation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_CNRS0_NOC1_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r4328 r4616  
    166166         DO jj = 2, jpjm1              ! Surface pressure gradient (now) 
    167167            DO ji = fs_2, fs_jpim1   ! vector opt. 
    168                spgu(ji,jj) = - grav * ( sshn(ji+1,jj) - sshn(ji,jj) ) / e1u(ji,jj) 
    169                spgv(ji,jj) = - grav * ( sshn(ji,jj+1) - sshn(ji,jj) ) / e2v(ji,jj) 
     168               spgu(ji,jj) = - grav * ( sshn(ji+1,jj) - sshn(ji,jj) ) * r1_e1u(ji,jj) 
     169               spgv(ji,jj) = - grav * ( sshn(ji,jj+1) - sshn(ji,jj) ) * r1_e2v(ji,jj) 
    170170            END DO  
    171171         END DO  
     
    192192      ! compute the next vertically averaged velocity (effect of the additional force not included) 
    193193      ! --------------------------------------------- 
     194      ! vertical sum 
    194195      DO jj = 2, jpjm1 
    195196         DO ji = fs_2, fs_jpim1   ! vector opt. 
    196             spgu(ji,jj) = 0._wp 
    197             spgv(ji,jj) = 0._wp 
    198          END DO 
    199       END DO 
    200  
    201       ! vertical sum 
    202 !CDIR NOLOOPCHG 
    203       IF( lk_vopt_loop ) THEN          ! vector opt., forced unroll 
    204          DO jk = 1, jpkm1 
    205             DO ji = 1, jpij 
    206                spgu(ji,1) = spgu(ji,1) + fse3u_a(ji,1,jk) * ua(ji,1,jk) 
    207                spgv(ji,1) = spgv(ji,1) + fse3v_a(ji,1,jk) * va(ji,1,jk) 
    208             END DO 
    209          END DO 
    210       ELSE                        ! No  vector opt. 
    211          DO jk = 1, jpkm1 
    212             DO jj = 2, jpjm1 
    213                DO ji = 2, jpim1 
    214                   spgu(ji,jj) = spgu(ji,jj) + fse3u_a(ji,jj,jk) * ua(ji,jj,jk) 
    215                   spgv(ji,jj) = spgv(ji,jj) + fse3v_a(ji,jj,jk) * va(ji,jj,jk) 
    216                END DO 
    217             END DO 
    218          END DO 
    219       ENDIF 
     197            spgu(ji,jj) = fse3u_a(ji,jj,1) * ua(ji,jj,1) 
     198            spgv(ji,jj) = fse3v_a(ji,jj,1) * va(ji,jj,1) 
     199         END DO 
     200      END DO 
     201      DO jk = 2, jpkm1 
     202         DO jj = 2, jpjm1 
     203            DO ji = 2, jpim1 
     204               spgu(ji,jj) = spgu(ji,jj) + fse3u_a(ji,jj,jk) * ua(ji,jj,jk) 
     205               spgv(ji,jj) = spgv(ji,jj) + fse3v_a(ji,jj,jk) * va(ji,jj,jk) 
     206            END DO 
     207         END DO 
     208      END DO 
    220209 
    221210      ! transport: multiplied by the horizontal scale factor 
     
    294283         DO ji = fs_2, fs_jpim1   ! vector opt. 
    295284            ! trend of Transport divergence gradient 
    296             ztdgu = z2dtg * (gcx(ji+1,jj  ) - gcx(ji,jj) ) / e1u(ji,jj) 
    297             ztdgv = z2dtg * (gcx(ji  ,jj+1) - gcx(ji,jj) ) / e2v(ji,jj) 
     285            ztdgu = z2dtg * (gcx(ji+1,jj  ) - gcx(ji,jj) ) * r1_e1u(ji,jj) 
     286            ztdgv = z2dtg * (gcx(ji  ,jj+1) - gcx(ji,jj) ) * r1_e2v(ji,jj) 
    298287            ! multiplied by z2dt 
    299288#if defined key_bdy 
Note: See TracChangeset for help on using the changeset viewer.