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/DYN/dynzad.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/DYN/dynzad.F90

    r2715 r3294  
    2121   USE lib_mpp         ! MPP library 
    2222   USE prtctl         ! Print control 
     23   USE wrk_nemo        ! Memory Allocation 
     24   USE timing          ! Timing 
    2325 
    2426   IMPLICIT NONE 
     
    5254      !! ** Action  : - Update (ua,va) with the vert. momentum adv. trends 
    5355      !!              - Save the trends in (ztrdu,ztrdv) ('key_trddyn') 
    54      !!---------------------------------------------------------------------- 
    55       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    56       USE wrk_nemo, ONLY:   zww   => wrk_2d_1                        ! 2D workspace 
    57       USE oce     , ONLY:   zwuw  => ta       , zwvw  => sa          ! (ta,sa) used as 3D workspace 
    58       USE wrk_nemo, ONLY:   ztrdu => wrk_3d_1 , ztrdv => wrk_3d_2    ! 3D workspace 
    59       ! 
     56      !!---------------------------------------------------------------------- 
    6057      INTEGER, INTENT(in) ::   kt   ! ocean time-step inedx 
    6158      ! 
    6259      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
    6360      REAL(wp) ::   zua, zva        ! temporary scalars 
     61      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwuw , zwvw 
     62      REAL(wp), POINTER, DIMENSION(:,:  ) ::  zww 
     63      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
    6464      !!---------------------------------------------------------------------- 
    65        
    66       IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1,2) ) THEN 
    67          CALL ctl_stop('dyn_zad: requested workspace arrays unavailable')   ;   RETURN 
    68       ENDIF 
    69  
     65      ! 
     66      IF( nn_timing == 1 )  CALL timing_start('dyn_zad') 
     67      ! 
     68      CALL wrk_alloc( jpi,jpj, zww )  
     69      CALL wrk_alloc( jpi,jpj,jpk, zwuw , zwvw )  
     70      ! 
    7071      IF( kt == nit000 ) THEN 
    7172         IF(lwp)WRITE(numout,*) 
     
    7475 
    7576      IF( l_trddyn )   THEN         ! Save ua and va trends 
     77         CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    7678         ztrdu(:,:,:) = ua(:,:,:)  
    7779         ztrdv(:,:,:) = va(:,:,:)  
     
    117119         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    118120         CALL trd_mod(ztrdu, ztrdv, jpdyn_trd_zad, 'DYN', kt) 
     121         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    119122      ENDIF 
    120123      !                             ! Control print 
     
    122125         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    123126      ! 
    124       IF( wrk_not_released(2, 1)   .OR.   & 
    125           wrk_not_released(3, 1,2) )   CALL ctl_stop('dyn_zad: failed to release workspace arrays') 
     127      CALL wrk_dealloc( jpi,jpj, zww )  
     128      CALL wrk_dealloc( jpi,jpj,jpk, zwuw , zwvw )  
     129      ! 
     130      IF( nn_timing == 1 )  CALL timing_stop('dyn_zad') 
    126131      ! 
    127132   END SUBROUTINE dyn_zad 
Note: See TracChangeset for help on using the changeset viewer.