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 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90 – NEMO

Ignore:
Timestamp:
2011-03-30T17:58:35+02:00 (13 years ago)
Author:
rblod
Message:

First attempt to put dynamic allocation on the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90

    r2528 r2715  
    44   !! Ocean dynamics : vertical advection trend 
    55   !!====================================================================== 
    6    !! History :  6.0  !  91-01  (G. Madec) Original code 
    7    !!            7.0  !  91-11  (G. Madec) 
    8    !!            7.5  !  96-01  (G. Madec) statement function for e3 
    9    !!            8.5  !  02-07  (G. Madec) j-k-i case: Original code 
    10    !!            8.5  !  02-07  (G. Madec) Free form, F90 
     6   !! History :  OPA  ! 1991-01  (G. Madec) Original code 
     7   !!            7.0  ! 1991-11  (G. Madec) 
     8   !!            7.5  ! 1996-01  (G. Madec) statement function for e3 
     9   !!   NEMO     0.5  ! 2002-07  (G. Madec) Free form, F90 
    1110   !!---------------------------------------------------------------------- 
    1211    
     
    2019   USE trdmod         ! ocean dynamics trends  
    2120   USE in_out_manager ! I/O manager 
     21   USE lib_mpp         ! MPP library 
    2222   USE prtctl         ! Print control 
    2323 
     
    3333   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
    3434   !! $Id$ 
    35    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     35   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    3636   !!---------------------------------------------------------------------- 
    37  
    3837CONTAINS 
    3938 
     
    5453      !!              - Save the trends in (ztrdu,ztrdv) ('key_trddyn') 
    5554     !!---------------------------------------------------------------------- 
    56       USE oce, ONLY:   zwuw => ta   ! use ta as 3D workspace 
    57       USE oce, ONLY:   zwvw => sa   ! use sa as 3D workspace 
    58       !! 
     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      ! 
    5960      INTEGER, INTENT(in) ::   kt   ! ocean time-step inedx 
    60       !! 
     61      ! 
    6162      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
    6263      REAL(wp) ::   zua, zva        ! temporary scalars 
    63       REAL(wp), DIMENSION(jpi,jpj)     ::   zww            ! 2D  workspace 
    64       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdu, ztrdv   ! 3D workspace 
    6564      !!---------------------------------------------------------------------- 
    6665       
     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 
    6770      IF( kt == nit000 ) THEN 
    6871         IF(lwp)WRITE(numout,*) 
     
    119122         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    120123      ! 
     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') 
     126      ! 
    121127   END SUBROUTINE dyn_zad 
    122128 
Note: See TracChangeset for help on using the changeset viewer.