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 3159 for branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90 – NEMO

Ignore:
Timestamp:
2011-11-18T22:41:44+01:00 (13 years ago)
Author:
cetlod
Message:

New dynamical allocation + timing on TRA/ routines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r3116 r3159  
    2222   USE dynspg_oce      ! choice/control of key cpp for surface pressure gradient 
    2323   USE trc_oce         ! share passive tracers/Ocean variables 
     24   USE wrk_nemo_2      ! Memory Allocation 
     25   USE timing          ! Timing 
    2426 
    2527   IMPLICIT NONE 
     
    7375      !!             Farrow, D.E., Stevens, D.P., 1995, J. Phys. Ocean. 25, 1731Ð1741.  
    7476      !!---------------------------------------------------------------------- 
    75       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    7677      USE oce     , ONLY:   zwx  => ua       , zwy  => va         ! (ua,va) used as workspace 
    77       USE wrk_nemo, ONLY:   ztu  => wrk_3d_1 , ztv  => wrk_3d_2   ! 3D workspace 
    78       USE wrk_nemo, ONLY:   zltu => wrk_3d_3 , zltv => wrk_3d_4   !  -      - 
    79       USE wrk_nemo, ONLY:   zti  => wrk_3d_5 , ztw  => wrk_3d_6   !  -      - 
    8078      ! 
    8179      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     
    9290      REAL(wp) ::   zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk   !   -      - 
    9391      REAL(wp) ::   zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn    !   -      - 
    94       !!---------------------------------------------------------------------- 
    95  
    96       IF( wrk_in_use(3, 1,2,3,4,5,6) )THEN 
    97          CALL ctl_stop('tra_adv_ubs: requested workspace arrays unavailable')   ;   RETURN 
    98       ENDIF 
     92      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztu, ztv, zltu, zltv, zti, ztw 
     93      !!---------------------------------------------------------------------- 
     94      ! 
     95      IF( nn_timing == 1 )  CALL timing_start('tra_adv_ubs') 
     96      ! 
     97      CALL wrk_alloc( jpi, jpj, jpk, ztu, ztv, zltu, zltv, zti, ztw ) 
     98      ! 
    9999 
    100100      IF( kt == kit000 )  THEN 
     
    269269      ENDDO 
    270270      ! 
    271       IF( wrk_not_released(3, 1,2,3,4,5,6) )   CALL ctl_stop('tra_adv_ubs: failed to release workspace arrays') 
     271      CALL wrk_dealloc( jpi, jpj, jpk, ztu, ztv, zltu, zltv, zti, ztw ) 
     272      ! 
     273      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_ubs') 
    272274      ! 
    273275   END SUBROUTINE tra_adv_ubs 
     
    287289      !!       in-space based differencing for fluid 
    288290      !!---------------------------------------------------------------------- 
    289       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    290       USE wrk_nemo, ONLY:   zbetup => wrk_3d_1, zbetdo => wrk_3d_2   ! 3D workspace 
    291291      ! 
    292292      REAL(wp), INTENT(in   ), DIMENSION(jpk)          ::   p2dt   ! vertical profile of tracer time-step 
     
    298298      INTEGER  ::   ikm1         ! local integer 
    299299      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn, z2dtt   ! local scalars 
    300       !!---------------------------------------------------------------------- 
    301  
    302       IF( wrk_in_use(3, 1,2) ) THEN 
    303          CALL ctl_stop('nonosc_z: requested workspace arrays unavailable')   ;   RETURN 
    304       ENDIF 
     300      REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo 
     301      !!---------------------------------------------------------------------- 
     302      ! 
     303      IF( nn_timing == 1 )  CALL timing_start('nonosc_z') 
     304      ! 
     305      CALL wrk_alloc( jpi, jpj, jpk, zbetup, zbetdo ) 
     306      ! 
    305307 
    306308      zbig  = 1.e+40_wp 
     
    374376      END DO 
    375377      ! 
    376       IF( wrk_not_released(3, 1,2) )   CALL ctl_stop('nonosc_z: failed to release workspace arrays') 
     378      CALL wrk_dealloc( jpi, jpj, jpk, zbetup, zbetdo ) 
     379      ! 
     380      IF( nn_timing == 1 )  CALL timing_stop('nonosc_z') 
    377381      ! 
    378382   END SUBROUTINE nonosc_z 
Note: See TracChangeset for help on using the changeset viewer.