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 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90 – NEMO

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r2715 r3294  
    5050   USE iom            ! I/O manager library 
    5151   USE lib_mpp        ! MPP library 
     52   USE wrk_nemo       ! work arrays 
     53   USE timing         ! Timing 
    5254 
    5355   IMPLICIT NONE 
     
    190192      !!                (= Kz dz[Ub] * dz[Un] ) 
    191193      !! --------------------------------------------------------------------- 
    192       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released, iwrk_in_use, iwrk_not_released 
    193       USE oce     , ONLY:   zdiag => ua , zd_up => va , zd_lw => ta   ! (ua,va,ta) used as workspace 
    194       USE wrk_nemo, ONLY:   imlc  => iwrk_2d_1   ! 2D INTEGER workspace 
    195       USE wrk_nemo, ONLY:   zhlc  =>  wrk_2d_1   ! 2D REAL workspace 
    196       USE wrk_nemo, ONLY:   zpelc =>  wrk_3d_1   ! 3D REAL workspace 
    197       ! 
    198194      INTEGER  ::   ji, jj, jk                      ! dummy loop arguments 
    199195!!bfr      INTEGER  ::   ikbu, ikbv, ikbum1, ikbvm1      ! temporary scalar 
     
    208204      REAL(wp) ::   zzd_up, zzd_lw                  !    -         - 
    209205!!bfr      REAL(wp) ::   zebot                           !    -         - 
     206      INTEGER , POINTER, DIMENSION(:,:  ) :: imlc 
     207      REAL(wp), POINTER, DIMENSION(:,:  ) :: zhlc 
     208      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpelc, zdiag, zd_up, zd_lw 
    210209      !!-------------------------------------------------------------------- 
    211210      ! 
    212       IF( iwrk_in_use(2, 1) .OR.   & 
    213            wrk_in_use(2, 1) .OR.   & 
    214            wrk_in_use(3, 1)   ) THEN 
    215          CALL ctl_stop('tke_tke: requested workspace arrays unavailable')   ;   RETURN 
    216       END IF 
    217  
     211      IF( nn_timing == 1 )  CALL timing_start('tke_tke') 
     212      ! 
     213      CALL wrk_alloc( jpi,jpj, imlc )    ! integer 
     214      CALL wrk_alloc( jpi,jpj, zhlc )  
     215      CALL wrk_alloc( jpi,jpj,jpk, zpelc, zdiag, zd_up, zd_lw )  
     216      ! 
    218217      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
    219218      zfact1 = -.5_wp * rdt  
     
    429428      CALL lbc_lnk( en, 'W', 1. )      ! Lateral boundary conditions (sign unchanged) 
    430429      ! 
    431       IF( iwrk_not_released(2 ,1) .OR.   & 
    432            wrk_not_released(2, 1) .OR.   & 
    433            wrk_not_released(3, 1)  )   CALL ctl_stop( 'tke_tke: failed to release workspace arrays' ) 
     430      CALL wrk_dealloc( jpi,jpj, imlc )    ! integer 
     431      CALL wrk_dealloc( jpi,jpj, zhlc )  
     432      CALL wrk_dealloc( jpi,jpj,jpk, zpelc, zdiag, zd_up, zd_lw )  
     433      ! 
     434      IF( nn_timing == 1 )  CALL timing_stop('tke_tke') 
    434435      ! 
    435436   END SUBROUTINE tke_tke 
     
    471472      !!              - avmu, avmv : now vertical eddy viscosity at uw- and vw-points 
    472473      !!---------------------------------------------------------------------- 
    473       USE oce, ONLY:   zmpdl => ua , zmxlm => va , zmxld => ta   ! (ua,va,ta) used as workspace 
    474       !! 
    475474      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    476475      REAL(wp) ::   zrn2, zraug, zcoef, zav     ! local scalars 
    477476      REAL(wp) ::   zdku, zpdlr, zri, zsqen     !   -      - 
    478477      REAL(wp) ::   zdkv, zemxl, zemlm, zemlp   !   -      - 
     478      REAL(wp), POINTER, DIMENSION(:,:,:) :: zmpdl, zmxlm, zmxld 
    479479      !!-------------------------------------------------------------------- 
     480      ! 
     481      IF( nn_timing == 1 )  CALL timing_start('tke_avn') 
     482 
     483      CALL wrk_alloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld )  
    480484 
    481485      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    649653            &          tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk ) 
    650654      ENDIF 
     655      ! 
     656      CALL wrk_dealloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld )  
     657      ! 
     658      IF( nn_timing == 1 )  CALL timing_stop('tke_avn') 
    651659      ! 
    652660   END SUBROUTINE tke_avn 
Note: See TracChangeset for help on using the changeset viewer.