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 4449 for branches/2011 – NEMO

Changeset 4449 for branches/2011


Ignore:
Timestamp:
2014-02-04T13:16:11+01:00 (10 years ago)
Author:
trackstand2
Message:

Slight opt for z-first in dyn_vor

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r4448 r4449  
    652652         SELECT CASE( kvor )      ! vorticity considered 
    653653         CASE ( 1 )                                                ! planetary vorticity (Coriolis) 
    654             DO jk = 1, jpkm1 
    655                zwz(:,:,jk) = ff(:,:)      * ze3f(:,:,jk) 
     654            DO jj = 1, jpj, 1 
     655               DO ji = 1, jpi, 1 
     656                  DO jk = 1, jpkm1 
     657                     zwz(ji,jj,jk) = ff(ji,jj)      * ze3f(ji,jj,jk) 
     658                  END DO 
     659               END DO 
    656660            END DO 
    657661         CASE ( 2 )                                                ! relative  vorticity 
    658             DO jk = 1, jpkm1 
    659                zwz(:,:,jk) = rotn(:,:,jk) * ze3f(:,:,jk) 
     662            DO jj = 1, jpj, 1 
     663               DO ji = 1, jpi, 1 
     664                  DO jk = 1, jpkm1 
     665                     zwz(ji,jj,jk) = rotn(ji,jj,jk) * ze3f(ji,jj,jk) 
     666                  END DO 
     667               END DO 
    660668            END DO 
    661669         CASE ( 3 )                                                ! metric term 
     
    671679            CALL lbc_lnk( zwz, 'F', 1. ) 
    672680         CASE ( 4 )                                                ! total (relative + planetary vorticity) 
    673             DO jk = 1, jpkm1 
    674                zwz(:,:,jk) = ( rotn(:,:,jk) + ff(:,:) ) * ze3f(:,:,jk) 
     681            DO jj = 1, jpj, 1 
     682               DO ji = 1, jpi, 1 
     683                  DO jk = 1, jpkm1 
     684                     zwz(ji,jj,jk) = ( rotn(ji,jj,jk) + ff(ji,jj) ) * ze3f(ji,jj,jk) 
     685                  END DO 
     686               END DO 
    675687            END DO 
    676688         CASE ( 5 )                                                ! total (coriolis + metric) 
     
    700712         ! Compute and add the vorticity term trend 
    701713         ! ---------------------------------------- 
    702          jj = 2 
    703          ztne(1,:,:) = 0   ;   ztnw(1,:,:) = 0   ;   ztse(1,:,:) = 0   ;   ztsw(1,:,:) = 0 
    704          DO ji = 2, jpi    
    705                DO jk = 1, jpkm1 
    706                   ztne(ji,jj,jk) = zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) 
    707                   ztnw(ji,jj,jk) = zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) 
    708                   ztse(ji,jj,jk) = zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) 
    709                   ztsw(ji,jj,jk) = zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) 
    710                END DO 
     714         DO jj = 1,jpj,1 
     715            DO jk = 1,jpk,1 
     716               ztne(1,jj,jk) = 0.0_wp ; ztnw(1,jj,jk) = 0.0_wp  
     717               ztse(1,jj,jk) = 0.0_wp ; ztsw(1,jj,jk) = 0.0_wp 
     718            END DO 
    711719         END DO 
    712          DO jj = 3, jpj 
    713             DO ji = fs_2, jpi   ! vector opt. ok because we start at jj = 3 
     720 
     721         DO jj = 2, jpj 
     722            DO ji = 2, jpi 
    714723               DO jk = 1, jpkm1 
    715724                  ztne(ji,jj,jk) = zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) 
     
    726735                          ztnw(ji+1,jj,jk) * zwy(ji+1,jj  ,jk)   & 
    727736                  &     + ztse(ji,jj  ,jk) * zwy(ji  ,jj-1,jk) + ztsw(ji+1,jj,jk) * zwy(ji+1,jj-1,jk) ) 
     737 
    728738                  zva = - zfac12 / e2v(ji,jj) * (  ztsw(ji,jj+1,jk) * zwx(ji-1,jj+1,jk) + & 
    729739                          ztse(ji,jj+1,jk) * zwx(ji  ,jj+1,jk)   & 
    730740                  &     + ztnw(ji,jj  ,jk) * zwx(ji-1,jj  ,jk) + ztne(ji,jj  ,jk) * zwx(ji  ,jj  ,jk) ) 
     741 
    731742                  pua(ji,jj,jk) = pua(ji,jj,jk) + zua 
    732743                  pva(ji,jj,jk) = pva(ji,jj,jk) + zva 
Note: See TracChangeset for help on using the changeset viewer.