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/TRA/traadv_ubs.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/TRA/traadv_ubs.F90

    r2715 r3294  
    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        ! Memory Allocation 
     25   USE timing          ! Timing 
    2426 
    2527   IMPLICIT NONE 
     
    4042CONTAINS 
    4143 
    42    SUBROUTINE tra_adv_ubs ( kt, cdtype, p2dt, pun, pvn, pwn,      & 
     44   SUBROUTINE tra_adv_ubs ( kt, kit000, cdtype, p2dt, pun, pvn, pwn,      & 
    4345      &                                       ptb, ptn, pta, kjpt ) 
    4446      !!---------------------------------------------------------------------- 
     
    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 
     80      INTEGER                              , INTENT(in   ) ::   kit000          ! first time step index 
    8281      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    8382      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
     
    9190      REAL(wp) ::   zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk   !   -      - 
    9291      REAL(wp) ::   zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn    !   -      - 
    93       !!---------------------------------------------------------------------- 
    94  
    95       IF( wrk_in_use(3, 1,2,3,4,5,6) )THEN 
    96          CALL ctl_stop('tra_adv_ubs: requested workspace arrays unavailable')   ;   RETURN 
    97       ENDIF 
    98  
    99       IF( kt == nit000 )  THEN 
     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      ! 
     99 
     100      IF( kt == kit000 )  THEN 
    100101         IF(lwp) WRITE(numout,*) 
    101102         IF(lwp) WRITE(numout,*) 'tra_adv_ubs :  horizontal UBS advection scheme on ', cdtype 
     
    268269      ENDDO 
    269270      ! 
    270       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') 
    271274      ! 
    272275   END SUBROUTINE tra_adv_ubs 
     
    286289      !!       in-space based differencing for fluid 
    287290      !!---------------------------------------------------------------------- 
    288       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    289       USE wrk_nemo, ONLY:   zbetup => wrk_3d_1, zbetdo => wrk_3d_2   ! 3D workspace 
    290291      ! 
    291292      REAL(wp), INTENT(in   ), DIMENSION(jpk)          ::   p2dt   ! vertical profile of tracer time-step 
     
    297298      INTEGER  ::   ikm1         ! local integer 
    298299      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn, z2dtt   ! local scalars 
    299       !!---------------------------------------------------------------------- 
    300  
    301       IF( wrk_in_use(3, 1,2) ) THEN 
    302          CALL ctl_stop('nonosc_z: requested workspace arrays unavailable')   ;   RETURN 
    303       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      ! 
    304307 
    305308      zbig  = 1.e+40_wp 
     
    373376      END DO 
    374377      ! 
    375       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') 
    376381      ! 
    377382   END SUBROUTINE nonosc_z 
Note: See TracChangeset for help on using the changeset viewer.