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/dynzdf.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/dynzdf.F90

    r2528 r2715  
    2323   USE trdmod_oce      ! ocean variables trends 
    2424   USE in_out_manager  ! I/O manager 
     25   USE lib_mpp         ! MPP library 
    2526   USE prtctl          ! Print control 
    2627 
     
    5253      !! ** Purpose :   compute the vertical ocean dynamics physics. 
    5354      !!--------------------------------------------------------------------- 
     55      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
     56      USE wrk_nemo, ONLY:   ztrdu => wrk_3d_1 , ztrdv => wrk_3d_2    ! 3D workspace 
     57      !! 
    5458      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    55       !! 
    56       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdu, ztrdv   ! 3D workspace 
    5759      !!--------------------------------------------------------------------- 
    5860 
     61      IF( wrk_in_use(3, 1,2) ) THEN 
     62         CALL ctl_stop('dyn_zdf: requested workspace arrays unavailable')   ;   RETURN 
     63      END IF 
    5964      !                                          ! set time step 
    6065      IF( neuler == 0 .AND. kt == nit000     ) THEN   ;   r2dt =      rdt   ! = rdtra (restart with Euler time stepping) 
     
    7277      CASE ( 1 )   ;   CALL dyn_zdf_imp( kt, r2dt )      ! implicit scheme 
    7378      ! 
    74       CASE ( -1 )                                      ! esopa: test all possibility with control print 
     79      CASE ( -1 )                                        ! esopa: test all possibility with control print 
    7580                       CALL dyn_zdf_exp( kt, r2dt ) 
    7681                       CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf0 - Ua: ', mask1=umask,               & 
    77             &                        tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     82                          &          tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    7883                       CALL dyn_zdf_imp( kt, r2dt ) 
    7984                       CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf1 - Ua: ', mask1=umask,               & 
    80             &                        tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     85                          &          tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    8186      END SELECT 
    8287 
     
    8994      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf  - Ua: ', mask1=umask,               & 
    9095            &                    tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     96      ! 
     97      IF( wrk_not_released(3, 1,2) )   CALL ctl_stop('dyn_zdf: failed to release workspace arrays') 
    9198      ! 
    9299   END SUBROUTINE dyn_zdf 
Note: See TracChangeset for help on using the changeset viewer.