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

    r2528 r2715  
    1818   USE trdmod         ! ocean dynamics trends 
    1919   USE in_out_manager ! I/O manager 
     20   USE lib_mpp        ! MPP library 
    2021   USE prtctl         ! Print control 
    2122 
     
    2930#  include "vectopt_loop_substitute.h90" 
    3031   !!---------------------------------------------------------------------- 
    31    !! NEMO/OPA 3.2 , LODYC-IPSL  (2009) 
     32   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
    3233   !! $Id$ 
    33    !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     34   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    3435   !!---------------------------------------------------------------------- 
    35  
    3636CONTAINS 
    3737 
     
    4747      !! ** Action  :   (ua,va) updated with the now vorticity term trend 
    4848      !!---------------------------------------------------------------------- 
    49       USE oce, ONLY:   zfu => ta   ! use ta as 3D workspace 
    50       USE oce, ONLY:   zfv => sa   ! use sa as 3D workspace 
    51       !! 
     49      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
     50      USE oce     , ONLY:   zfu   => ta       , zfv   => sa       ! (ta,sa) used as 3D workspace 
     51      USE wrk_nemo, ONLY:   zfu_t => wrk_3d_1 , zfv_t => wrk_3d_4 , zfu_uw =>wrk_3d_6   ! 3D workspaces 
     52      USE wrk_nemo, ONLY:   zfu_f => wrk_3d_2 , zfv_f => wrk_3d_5 , zfv_vw =>wrk_3d_7 
     53      USE wrk_nemo, ONLY:   zfw   => wrk_3d_3  
     54      ! 
    5255      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    53       !! 
     56      ! 
    5457      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    55       REAL(wp) ::   zbu, zbv     ! temporary scalars 
    56       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zfu_t, zfu_f, zfu_uw   ! 3D workspace 
    57       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zfv_t, zfv_f, zfv_vw   !  -      - 
    58       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zfw                    !  -      - 
     58      REAL(wp) ::   zbu, zbv     ! local scalars 
    5959      !!---------------------------------------------------------------------- 
    6060 
    61       IF( kt == nit000 ) THEN 
    62          IF(lwp) WRITE(numout,*) 
    63          IF(lwp) WRITE(numout,*) 'dyn_adv_cen2 : 2nd order flux form momentum advection' 
    64          IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
     61      IF( kt == nit000 .AND. lwp ) THEN 
     62         WRITE(numout,*) 
     63         WRITE(numout,*) 'dyn_adv_cen2 : 2nd order flux form momentum advection' 
     64         WRITE(numout,*) '~~~~~~~~~~~~' 
     65      ENDIF 
     66 
     67      ! Check that global workspace arrays aren't already in use 
     68      IF( wrk_in_use(3, 1,2,3,4,5,6,7) ) THEN 
     69         CALL ctl_stop('dyn_adv_cen2 : requested workspace array unavailable')   ;   RETURN 
    6570      ENDIF 
    6671 
     
    157162         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    158163      ! 
     164      IF( wrk_not_released(3, 1,2,3,4,5,6,7) )   CALL ctl_stop('dyn_adv_cen2: failed to release workspace array') 
     165      ! 
    159166   END SUBROUTINE dyn_adv_cen2 
    160167 
Note: See TracChangeset for help on using the changeset viewer.