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/C1D/dynnxt_c1d.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/C1D/dynnxt_c1d.F90

    r2409 r3211  
    2323 
    2424   PUBLIC dyn_nxt_c1d                ! routine called by step.F90 
     25   !! * Array index permutations 
     26#  include "oce_ftrans.h90" 
     27#  include "dom_oce_ftrans.h90" 
    2528   !!---------------------------------------------------------------------- 
    2629   !! NEMO/C1D 3.3 , NEMO Consortium (2010) 
     
    5154      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    5255      !! 
     56#if defined key_z_first 
     57      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     58#else 
    5359      INTEGER  ::   jk           ! dummy loop indices 
     60#endif 
    5461      REAL(wp) ::   z2dt         ! temporary scalar 
    5562      !!---------------------------------------------------------------------- 
     
    6673      CALL lbc_lnk( ua, 'U', -1. )   ;   CALL lbc_lnk( va, 'V', -1. )      ! Lateral boundary conditions 
    6774 
     75#if defined key_z_first 
     76      DO jj = 1, jpj                                                       ! Next Velocity 
     77         DO ji = 1, jpi  
     78            DO jk = 1, jpkm1 
     79               ua(ji,jj,jk) = ( ub(ji,jj,jk) + z2dt * ua(ji,jj,jk) ) * umask(ji,jj,jk) 
     80               va(ji,jj,jk) = ( vb(ji,jj,jk) + z2dt * va(ji,jj,jk) ) * vmask(ji,jj,jk) 
     81            END DO 
     82         END DO 
     83      END DO  
     84#else 
    6885      DO jk = 1, jpkm1                                                     ! Next Velocity 
    6986         ua(:,:,jk) = ( ub(:,:,jk) + z2dt * ua(:,:,jk) ) * umask(:,:,jk) 
    7087         va(:,:,jk) = ( vb(:,:,jk) + z2dt * va(:,:,jk) ) * vmask(:,:,jk) 
    7188      END DO  
     89#endif 
    7290  
     91#if defined key_z_first 
     92      IF( neuler == 0 .AND. kt == nit000 ) THEN                            ! Euler (forward) time stepping 
     93         DO jj = 1, jpj                                                    ! Time filter and swap of dynamics arrays 
     94            DO ji = 1, jpi 
     95               ub(ji,jj,1:jpkm1) = un(ji,jj,1:jpkm1) 
     96               vb(ji,jj,1:jpkm1) = vn(ji,jj,1:jpkm1) 
     97               un(ji,jj,1:jpkm1) = ua(ji,jj,1:jpkm1) 
     98               vn(ji,jj,1:jpkm1) = va(ji,jj,1:jpkm1) 
     99            END DO 
     100         END DO 
     101      ELSE                                                                ! Leap-frog time stepping 
     102         DO jj =1 , jpj 
     103            DO ji = 1, jpi 
     104               DO jk = 1, jpkm1 
     105                  ub(ji,jj,jk) = atfp * ( ub(ji,jj,jk) + ua(ji,jj,jk) ) + atfp1 * un(ji,jj,jk) 
     106                  vb(ji,jj,jk) = atfp * ( vb(ji,jj,jk) + va(ji,jj,jk) ) + atfp1 * vn(ji,jj,jk) 
     107                  un(ji,jj,jk) = ua(ji,jj,jk) 
     108                  vn(ji,jj,jk) = va(ji,jj,jk) 
     109               END DO 
     110            END DO 
     111         END DO 
     112      ENDIF 
     113#else 
    73114      DO jk = 1, jpkm1                                                     ! Time filter and swap of dynamics arrays 
    74115         IF( neuler == 0 .AND. kt == nit000 ) THEN                               ! Euler (forward) time stepping 
     
    84125         ENDIF 
    85126      END DO 
     127#endif 
    86128 
    87129      IF(ln_ctl)   CALL prt_ctl( tab3d_1=un, clinfo1=' nxt_c1d  - Un: ', mask1=umask,   & 
Note: See TracChangeset for help on using the changeset viewer.