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 8882 for branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90 – NEMO

Ignore:
Timestamp:
2017-12-01T18:44:09+01:00 (6 years ago)
Author:
flavoni
Message:

dev_CNRS_2017 branch: merged dev_r7881_ENHANCE09_RK3 with trunk r8864

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90

    r7753 r8882  
    2222   USE lib_mpp         ! MPP library 
    2323   USE prtctl          ! Print control 
    24    USE wrk_nemo        ! Memory Allocation 
    2524   USE timing          ! Timing 
    2625   USE bdy_oce         ! ocean open boundary conditions 
     
    3938#  include "vectopt_loop_substitute.h90" 
    4039   !!---------------------------------------------------------------------- 
    41    !! NEMO/OPA 3.6 , NEMO Consortium (2015) 
     40   !! NEMO/OPA 4.0 , NEMO Consortium (2017) 
    4241   !! $Id$  
    4342   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    7574      INTEGER, INTENT( in ) ::   kscheme   ! =0/1   type of KEG scheme  
    7675      ! 
    77       INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    78       REAL(wp) ::   zu, zv       ! temporary scalars 
    79       REAL(wp), POINTER, DIMENSION(:,:,:) :: zhke 
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv  
    81       INTEGER  ::   jb                 ! dummy loop indices 
    82       INTEGER  ::   ii, ij, igrd, ib_bdy   ! local integers 
    83       INTEGER  ::   fu, fv 
     76      INTEGER  ::   ji, jj, jk, jb    ! dummy loop indices 
     77      INTEGER  ::   ii, ifu, ib_bdy   ! local integers 
     78      INTEGER  ::   ij, ifv, igrd     !   -       - 
     79      REAL(wp) ::   zu, zv            ! local scalars 
     80      REAL(wp), DIMENSION(jpi,jpj,jpk)        ::   zhke 
     81      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrdu, ztrdv  
    8482      !!---------------------------------------------------------------------- 
    8583      ! 
    86       IF( nn_timing == 1 )   CALL timing_start('dyn_keg') 
    87       ! 
    88       CALL wrk_alloc( jpi,jpj,jpk,   zhke ) 
     84      IF( ln_timing )   CALL timing_start('dyn_keg') 
    8985      ! 
    9086      IF( kt == nit000 ) THEN 
     
    9490      ENDIF 
    9591 
    96       IF( l_trddyn ) THEN           ! Save ua and va trends 
    97          CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
     92      IF( l_trddyn ) THEN           ! Save the input trends 
     93         ALLOCATE( ztrdu(jpi,jpj,jpk) , ztrdv(jpi,jpj,jpk) ) 
    9894         ztrdu(:,:,:) = ua(:,:,:)  
    9995         ztrdv(:,:,:) = va(:,:,:)  
     
    112108                     ii   = idx_bdy(ib_bdy)%nbi(jb,igrd) 
    113109                     ij   = idx_bdy(ib_bdy)%nbj(jb,igrd) 
    114                      fu   = NINT( idx_bdy(ib_bdy)%flagu(jb,igrd) ) 
    115                      un(ii-fu,ij,jk) = un(ii,ij,jk) * umask(ii,ij,jk) 
     110                     ifu   = NINT( idx_bdy(ib_bdy)%flagu(jb,igrd) ) 
     111                     un(ii-ifu,ij,jk) = un(ii,ij,jk) * umask(ii,ij,jk) 
    116112                  END DO 
    117113               END DO 
     
    122118                     ii   = idx_bdy(ib_bdy)%nbi(jb,igrd) 
    123119                     ij   = idx_bdy(ib_bdy)%nbj(jb,igrd) 
    124                      fv   = NINT( idx_bdy(ib_bdy)%flagv(jb,igrd) ) 
    125                      vn(ii,ij-fv,jk) = vn(ii,ij,jk) * vmask(ii,ij,jk) 
     120                     ifv   = NINT( idx_bdy(ib_bdy)%flagv(jb,igrd) ) 
     121                     vn(ii,ij-ifv,jk) = vn(ii,ij,jk) * vmask(ii,ij,jk) 
    126122                  END DO 
    127123               END DO 
     
    172168      ENDIF       
    173169 
    174  
    175170      ! 
    176171      DO jk = 1, jpkm1                    !==  grad( KE ) added to the general momentum trends  ==! 
     
    187182         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    188183         CALL trd_dyn( ztrdu, ztrdv, jpdyn_keg, kt ) 
    189          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
     184         DEALLOCATE( ztrdu , ztrdv ) 
    190185      ENDIF 
    191186      ! 
     
    193188         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    194189      ! 
    195       CALL wrk_dealloc( jpi,jpj,jpk,   zhke ) 
    196       ! 
    197       IF( nn_timing == 1 )   CALL timing_stop('dyn_keg') 
     190      IF( ln_timing )   CALL timing_stop('dyn_keg') 
    198191      ! 
    199192   END SUBROUTINE dyn_keg 
Note: See TracChangeset for help on using the changeset viewer.