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 3211 for branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90 – NEMO

Ignore:
Timestamp:
2011-12-11T16:00:26+01:00 (13 years ago)
Author:
spickles2
Message:

Stephen Pickles, 11 Dec 2011

Commit to bring the rest of the DCSE NEMO development branch
in line with the latest development version. This includes
array index re-ordering of all OPA_SRC/.

File:
1 edited

Legend:

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

    r2715 r3211  
    5656   PUBLIC   flt_rst      ! routine called by istate.F90 
    5757 
     58   !! * Control permutation of array indices 
     59#  include "oce_ftrans.h90" 
     60#  include "dom_oce_ftrans.h90" 
     61#  include "zdf_oce_ftrans.h90" 
     62#  include "sbc_oce_ftrans.h90" 
     63#  include "obc_oce_ftrans.h90" 
     64#  include "domvvl_ftrans.h90" 
     65 
    5866   !! * Substitutions 
    5967#  include "domzgr_substitute.h90" 
     
    104112      !!--------------------------------------------------------------------- 
    105113      USE oce, ONLY:   zub   => ta , zvb   => sa   ! (ta,sa) used as workspace 
     114      !! DCSE_NEMO: need additional directives for renamed module variables 
     115!FTRANS zub :I :I :z 
     116!FTRANS zvb :I :I :z 
    106117      !! 
    107118      INTEGER, INTENT(in   ) ::   kt       ! ocean time-step index 
     
    138149         ! 
    139150         IF( ln_dynadv_vec ) THEN      ! vector form : applied on velocity 
     151#if defined key_z_first 
     152            DO jj = 2, jpjm1 
     153               DO ji = 2, jpim1 
     154                  DO jk = 1, jpkm1 
     155#else 
    140156            DO jk = 1, jpkm1 
    141157               DO jj = 2, jpjm1 
    142158                  DO ji = fs_2, fs_jpim1   ! vector opt. 
     159#endif 
    143160                     ua(ji,jj,jk) = (  ub(ji,jj,jk) + z2dt * ua(ji,jj,jk)  ) * umask(ji,jj,jk) 
    144161                     va(ji,jj,jk) = (  vb(ji,jj,jk) + z2dt * va(ji,jj,jk)  ) * vmask(ji,jj,jk) 
     
    148165            ! 
    149166         ELSE                          ! flux form : applied on thickness weighted velocity 
     167#if defined key_z_first 
     168            DO jj = 2, jpjm1 
     169               DO ji = 2, jpim1 
     170                  DO jk = 1, jpkm1 
     171#else 
    150172            DO jk = 1, jpkm1 
    151173               DO jj = 2, jpjm1 
    152174                  DO ji = fs_2, fs_jpim1   ! vector opt. 
     175#endif 
    153176                     ua(ji,jj,jk) = (        ub(ji,jj,jk) * fse3u_b(ji,jj,jk)      & 
    154177                        &           + z2dt * ua(ji,jj,jk) * fse3u_n(ji,jj,jk)  )   & 
     
    171194            END DO  
    172195         END DO  
     196#if defined key_z_first 
     197         DO jj = 2, jpjm1              ! unweighted time stepping  
     198            DO ji = 2, jpim1 
     199               DO jk = 1, jpkm1 
     200#else 
    173201         DO jk = 1, jpkm1              ! unweighted time stepping  
    174202            DO jj = 2, jpjm1 
    175203               DO ji = fs_2, fs_jpim1   ! vector opt. 
     204#endif 
    176205                  ua(ji,jj,jk) = (  ub(ji,jj,jk) + z2dt * ( ua(ji,jj,jk) + spgu(ji,jj) )  ) * umask(ji,jj,jk) 
    177206                  va(ji,jj,jk) = (  vb(ji,jj,jk) + z2dt * ( va(ji,jj,jk) + spgv(ji,jj) )  ) * vmask(ji,jj,jk) 
     
    214243         END DO 
    215244      ELSE                        ! No  vector opt. 
     245#if defined key_z_first 
     246         DO jj = 2, jpjm1 
     247            DO ji = 2, jpim1 
     248               DO jk = 1, jpkm1 
     249#else 
    216250         DO jk = 1, jpkm1 
    217251            DO jj = 2, jpjm1 
    218252               DO ji = 2, jpim1 
     253#endif 
    219254                  spgu(ji,jj) = spgu(ji,jj) + fse3u(ji,jj,jk) * ua(ji,jj,jk) 
    220255                  spgv(ji,jj) = spgv(ji,jj) + fse3v(ji,jj,jk) * va(ji,jj,jk) 
     
    333368      !                       trend, the leap-frog time stepping will not 
    334369      !                       be done in dynnxt.F90 routine) 
     370#if defined key_z_first 
     371      DO jj = 2, jpjm1 
     372         DO ji = 2, jpim1 
     373            DO jk = 1, jpkm1 
     374#else 
    335375      DO jk = 1, jpkm1 
    336376         DO jj = 2, jpjm1 
    337377            DO ji = fs_2, fs_jpim1   ! vector opt. 
     378#endif 
    338379               ua(ji,jj,jk) = ( ua(ji,jj,jk) + spgu(ji,jj) ) * umask(ji,jj,jk) 
    339380               va(ji,jj,jk) = ( va(ji,jj,jk) + spgv(ji,jj) ) * vmask(ji,jj,jk) 
Note: See TracChangeset for help on using the changeset viewer.