Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90	(revision 7910)
@@ -34,5 +34,4 @@
    USE prtctl         ! Print control
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
    USE sbcwave        ! wave module
@@ -89,11 +88,10 @@
       !
       INTEGER ::   jk   ! dummy loop index
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt, ztrds   ! 3D workspace
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdt, ztrds   ! 3D workspace
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_adv')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   zun, zvn, zwn )
       !
       !                                          ! set time step
@@ -146,5 +144,4 @@
       !
       IF( l_trdtra )   THEN                    !* Save ta and sa trends
-         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)
          ztrds(:,:,:) = tsa(:,:,:,jp_sal)
@@ -175,5 +172,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds )
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )
       ENDIF
       !                                              ! print mean trends (used for debugging)
@@ -183,5 +179,4 @@
       IF( nn_timing == 1 )  CALL timing_stop( 'tra_adv' )
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   zun, zvn, zwn )
       !                                          
    END SUBROUTINE tra_adv
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen.F90	(revision 7910)
@@ -24,5 +24,4 @@
    USE trc_oce        ! share passive tracers/Ocean variables
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -80,10 +79,9 @@
       REAL(wp) ::   zC2t_u, zC4t_u   ! local scalars
       REAL(wp) ::   zC2t_v, zC4t_v   !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx, zwy, zwz, ztu, ztv, ztw
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx, zwy, zwz, ztu, ztv, ztw
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_adv_cen')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   zwx, zwy, zwz, ztu, ztv, ztw )
       !
       IF( kt == kit000 )  THEN
@@ -209,5 +207,4 @@
       END DO
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   zwx, zwy, zwz, ztu, ztv, ztw )
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_cen')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90	(revision 7910)
@@ -28,5 +28,4 @@
    USE lbclnk         ! ocean lateral boundary condition (or mpp link) 
    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)  
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -88,6 +87,6 @@
       REAL(wp) ::   zfp_ui, zfp_vj, zfp_wk, zC2t_u, zC4t_u   !   -      -
       REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk, zC2t_v, zC4t_v   !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdx, ztrdy, ztrdz, zptry
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdx, ztrdy, ztrdz, zptry
       REAL(wp), POINTER, DIMENSION(:,:)   :: z2d
       !!----------------------------------------------------------------------
@@ -95,5 +94,4 @@
       IF( nn_timing == 1 )  CALL timing_start('tra_adv_fct')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw )
       !
       IF( kt == kit000 )  THEN
@@ -112,10 +110,8 @@
       !
       IF( l_trd .OR. l_hst )  THEN
-         CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz )
          ztrdx(:,:,:) = 0._wp   ;    ztrdy(:,:,:) = 0._wp   ;   ztrdz(:,:,:) = 0._wp
       ENDIF
       !
       IF( l_ptr ) THEN  
-         CALL wrk_alloc( jpi, jpj, jpk, zptry )
          zptry(:,:,:) = 0._wp
       ENDIF
@@ -331,7 +327,4 @@
       END DO                     ! end of tracer loop
       !
-                              CALL wrk_dealloc( jpi,jpj,jpk,    zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw )
-      IF( l_trd .OR. l_hst )  CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz )
-      IF( l_ptr )             CALL wrk_dealloc( jpi, jpj, jpk, zptry )
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_fct')
@@ -376,16 +369,13 @@
       REAL(wp) ::   zfp_ui, zfp_vj, zfp_wk   !   -      -
       REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk   !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:  )   ::   zwx_sav , zwy_sav
-      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav
-      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   ztrdx, ztrdy, ztrdz
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry
-      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   ztrs
+      REAL(wp), DIMENSION(jpi,jpj)   ::   zwx_sav , zwy_sav
+      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav
+      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   ztrdx, ztrdy, ztrdz
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zptry
+      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt+1) ::   ztrs
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_adv_fct_zts')
       !
-      CALL wrk_alloc( jpi,jpj,             zwx_sav, zwy_sav )
-      CALL wrk_alloc( jpi,jpj,jpk,         zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav )
-      CALL wrk_alloc( jpi,jpj,jpk,kjpt+1,  ztrs )
       !
       IF( kt == kit000 )  THEN
@@ -404,10 +394,8 @@
       !
       IF( l_trd .OR. l_hst )  THEN
-         CALL wrk_alloc( jpi,jpj,jpk,   ztrdx, ztrdy, ztrdz )
          ztrdx(:,:,:) = 0._wp  ;    ztrdy(:,:,:) = 0._wp  ;   ztrdz(:,:,:) = 0._wp
       ENDIF
       !
       IF( l_ptr ) THEN  
-         CALL wrk_alloc( jpi, jpj,jpk, zptry )
          zptry(:,:,:) = 0._wp
       ENDIF
@@ -621,9 +609,4 @@
       END DO
       !
-                              CALL wrk_alloc( jpi,jpj,             zwx_sav, zwy_sav )
-                              CALL wrk_alloc( jpi,jpj, jpk,        zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav )
-                              CALL wrk_alloc( jpi,jpj,jpk,kjpt+1,  ztrs )
-      IF( l_trd .OR. l_hst )  CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz )
-      IF( l_ptr )             CALL wrk_dealloc( jpi, jpj, jpk, zptry )
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_fct_zts')
@@ -653,10 +636,9 @@
       REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn    ! local scalars
       REAL(wp) ::   zau, zbu, zcu, zav, zbv, zcv, zup, zdo            !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo, zbup, zbdo
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zbetup, zbetdo, zbup, zbdo
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('nonosc')
       !
-      CALL wrk_alloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo )
       !
       zbig  = 1.e+40_wp
@@ -734,5 +716,4 @@
       CALL lbc_lnk( paa, 'U', -1. )   ;   CALL lbc_lnk( pbb, 'V', -1. )   ! lateral boundary condition (changed sign)
       !
-      CALL wrk_dealloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo )
       !
       IF( nn_timing == 1 )  CALL timing_stop('nonosc')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90	(revision 7910)
@@ -19,5 +19,4 @@
    USE iom            ! IOM library
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! work arrays
    USE timing         ! Timing
 
@@ -95,13 +94,10 @@
       INTEGER, DIMENSION(3) ::   ilocu      !
       INTEGER, DIMENSION(2) ::   ilocs      !
-      REAL(wp), POINTER, DIMENSION(:,:  ) :: zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpsi_uw, zpsi_vw
-      INTEGER, POINTER, DIMENSION(:,:) :: inml_mle
+      REAL(wp), DIMENSION(jpi,jpj) :: zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpsi_uw, zpsi_vw
+      INTEGER, DIMENSION(jpi,jpj) :: inml_mle
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_adv_mle')
-      CALL wrk_alloc( jpi, jpj, zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH)
-      CALL wrk_alloc( jpi, jpj, jpk, zpsi_uw, zpsi_vw)
-      CALL wrk_alloc( jpi, jpj, inml_mle)
       !
       !                                      !==  MLD used for MLE  ==!
@@ -256,7 +252,4 @@
          CALL iom_put( "psiv_mle", zpsi_vw )    ! j-mle streamfunction
       ENDIF
-      CALL wrk_dealloc( jpi, jpj, zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH)
-      CALL wrk_dealloc( jpi, jpj, jpk, zpsi_uw, zpsi_vw)
-      CALL wrk_dealloc( jpi, jpj, inml_mle)
 
       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_mle')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90	(revision 7910)
@@ -27,5 +27,4 @@
    !
    USE iom
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)  
@@ -90,11 +89,10 @@
       REAL(wp) ::   zv, z0v, zzwy, z0w   !   -      -
       REAL(wp) ::   zalpha               !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zslpx, zslpy   ! 3D workspace
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx  , zwy     ! -      - 
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zslpx, zslpy   ! 3D workspace
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx  , zwy     ! -      - 
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_adv_mus')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   zslpx, zslpy, zwx, zwy )
       !
       IF( kt == kit000 )  THEN
@@ -279,5 +277,4 @@
       END DO                     ! end of tracer loop
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   zslpx, zslpy, zwx, zwy )
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_mus')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90	(revision 7910)
@@ -25,5 +25,4 @@
    USE lbclnk          ! ocean lateral boundary condition (or mpp link)
    USE in_out_manager  ! I/O manager
-   USE wrk_nemo        ! Memory Allocation
    USE timing          ! Timing
    USE lib_fortran     ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)  
@@ -138,8 +137,7 @@
       INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices
       REAL(wp) ::   ztra, zbtr, zdir, zdx, zmsk   ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx, zfu, zfc, zfd
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx, zfu, zfc, zfd
       !----------------------------------------------------------------------
       !
-      CALL wrk_alloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd )
       !                                                          ! ===========
       DO jn = 1, kjpt                                            ! tracer loop
@@ -234,5 +232,4 @@
       END DO
       !
-      CALL wrk_dealloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd )
       !
    END SUBROUTINE tra_adv_qck_i
@@ -254,8 +251,7 @@
       INTEGER  :: ji, jj, jk, jn   ! dummy loop indices
       REAL(wp) :: ztra, zbtr, zdir, zdx, zmsk   ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwy, zfu, zfc, zfd
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwy, zfu, zfc, zfd
       !----------------------------------------------------------------------
       !
-      CALL wrk_alloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd )
       !
       !                                                          ! ===========
@@ -359,5 +355,4 @@
       END DO
       !
-      CALL wrk_dealloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd )
       !
    END SUBROUTINE tra_adv_qck_j
@@ -377,8 +372,7 @@
       !
       INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz
-      !!----------------------------------------------------------------------
-      !
-      CALL wrk_alloc( jpi,jpj,jpk,   zwz )
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwz
+      !!----------------------------------------------------------------------
+      !
       !
       zwz(:,:, 1 ) = 0._wp       ! surface & bottom values set to zero for all tracers
@@ -421,5 +415,4 @@
       END DO
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   zwz )
       !
    END SUBROUTINE tra_adv_cen2_k
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90	(revision 7910)
@@ -26,5 +26,4 @@
    USE lbclnk         ! ocean lateral boundary condition (or mpp link)
    USE in_out_manager ! I/O manager
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)  
@@ -101,10 +100,9 @@
       REAL(wp) ::   zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk   !   -      -
       REAL(wp) ::   zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn    !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztu, ztv, zltu, zltv, zti, ztw
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztu, ztv, zltu, zltv, zti, ztw
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_adv_ubs')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   ztu, ztv, zltu, zltv, zti, ztw )
       !
       IF( kt == kit000 )  THEN
@@ -285,5 +283,4 @@
       END DO
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   ztu, ztv, zltu, zltv, zti, ztw )
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_adv_ubs')
@@ -313,10 +310,9 @@
       INTEGER  ::   ikm1         ! local integer
       REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn   ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zbetup, zbetdo
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('nonosc_z')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   zbetup, zbetdo )
       !
       zbig  = 1.e+40_wp
@@ -387,5 +383,4 @@
       END DO
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   zbetup, zbetdo )
       !
       IF( nn_timing == 1 )  CALL timing_stop('nonosc_z')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90	(revision 7910)
@@ -27,5 +27,4 @@
    USE lib_mpp        ! distributed memory computing library
    USE prtctl         ! Print control
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -77,5 +76,5 @@
       !
       INTEGER  ::   ji, jj    ! dummy loop indices
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdt
       !!----------------------------------------------------------------------
       !
@@ -83,5 +82,4 @@
       !
       IF( l_trdtra )   THEN         ! Save the input temperature trend
-         CALL wrk_alloc( jpi,jpj,jpk,   ztrdt )
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)
       ENDIF
@@ -98,5 +96,4 @@
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:)
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbc, ztrdt )
-         CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt )
       ENDIF
       !
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90	(revision 7910)
@@ -36,5 +36,4 @@
    USE lbclnk         ! ocean lateral boundary conditions
    USE prtctl         ! Print control
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)  
@@ -106,5 +105,5 @@
       INTEGER, INTENT( in ) ::   kt   ! ocean time-step
       !
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds
       !!----------------------------------------------------------------------
       !
@@ -112,5 +111,4 @@
       !
       IF( l_trdtra )   THEN                         !* Save the input trends
-         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)
          ztrds(:,:,:) = tsa(:,:,:,jp_sal)
@@ -150,5 +148,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbl, ztrdt )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_bbl, ztrds )
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )
       ENDIF
       !
@@ -186,10 +183,9 @@
       INTEGER  ::   ik           ! local integers
       REAL(wp) ::   zbtr         ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:) :: zptb
+      REAL(wp), DIMENSION(jpi,jpj) :: zptb
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_bbl_dif')
       !
-      CALL wrk_alloc( jpi, jpj, zptb )
       !
       DO jn = 1, kjpt                                     ! tracer loop
@@ -216,5 +212,4 @@
       END DO                                                ! end tracer
       !                                                     ! ===========
-      CALL wrk_dealloc( jpi, jpj, zptb )
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_bbl_dif')
@@ -497,5 +492,5 @@
       INTEGER ::   ii0, ii1, ij0, ij1   ! local integer
       INTEGER ::   ios                  !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:) :: zmbk
+      REAL(wp), DIMENSION(jpi,jpj) :: zmbk
       !
       NAMELIST/nambbl/ nn_bbl_ldf, nn_bbl_adv, rn_ahtbbl, rn_gambbl
@@ -540,8 +535,6 @@
       END DO
       ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk
-      CALL wrk_alloc( jpi, jpj, zmbk )
       zmbk(:,:) = REAL( mbku_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'U',1.)   ;   mbku_d(:,:) = MAX( INT( zmbk(:,:) ), 1 )
       zmbk(:,:) = REAL( mbkv_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'V',1.)   ;   mbkv_d(:,:) = MAX( INT( zmbk(:,:) ), 1 )
-      CALL wrk_dealloc( jpi, jpj, zmbk )
 
       !                                 !* sign of grad(H) at u- and v-points
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90	(revision 7910)
@@ -35,5 +35,4 @@
    USE lib_mpp        ! MPP library
    USE prtctl         ! Print control
-   USE wrk_nemo       ! Memory allocation
    USE timing         ! Timing
    USE iom
@@ -94,12 +93,10 @@
       !
       INTEGER ::   ji, jj, jk, jn   ! dummy loop indices
-      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zts_dta, ztrdts
+      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zts_dta, ztrdts
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )   CALL timing_start('tra_dmp')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,jpts,   zts_dta )
       IF( l_trdtra )   THEN                    !* Save ta and sa trends
-         CALL wrk_alloc( jpi,jpj,jpk,jpts,   ztrdts ) 
          ztrdts(:,:,:,:) = tsa(:,:,:,:) 
       ENDIF
@@ -154,5 +151,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_dmp, ztrdts(:,:,:,jp_tem) )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_dmp, ztrdts(:,:,:,jp_sal) )
-         CALL wrk_dealloc( jpi,jpj,jpk,jpts,   ztrdts ) 
       ENDIF
       !                           ! Control print
@@ -160,5 +156,4 @@
          &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' )
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,jpts,   zts_dta )
       !
       IF( nn_timing == 1 )   CALL timing_stop('tra_dmp')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90	(revision 7910)
@@ -30,5 +30,4 @@
    USE lib_mpp        ! distribued memory computing library
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
-   USE wrk_nemo       ! Memory allocation
    USE timing         ! Timing
 
@@ -58,5 +57,5 @@
       INTEGER, INTENT( in ) ::   kt   ! ocean time-step index
       !!
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds
       !!----------------------------------------------------------------------
       !
@@ -64,5 +63,4 @@
       !
       IF( l_trdtra )   THEN                    !* Save ta and sa trends
-         CALL wrk_alloc( jpi,jpj,jpk,   ztrdt, ztrds ) 
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
          ztrds(:,:,:) = tsa(:,:,:,jp_sal)
@@ -85,5 +83,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_ldf, ztrdt )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_ldf, ztrds )
-         CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt, ztrds ) 
       ENDIF
       !                                        !* print mean trends (used for debugging)
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90	(revision 7910)
@@ -30,5 +30,4 @@
    USE phycst         ! physical constants
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -111,12 +110,10 @@
       REAL(wp) ::  zmskv, zahv_w, zabe2, zcof2, zcoef4   !   -      -
       REAL(wp) ::  zcoef0, ze3w_2, zsign, z2dt, z1_2dt   !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:)   ::   zdkt, zdk1t, z2d
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdit, zdjt, zftu, zftv, ztfw 
+      REAL(wp), DIMENSION(jpi,jpj)   ::   zdkt, zdk1t, z2d
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdit, zdjt, zftu, zftv, ztfw 
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_ldf_iso')
       !
-      CALL wrk_alloc( jpi,jpj,       zdkt, zdk1t, z2d ) 
-      CALL wrk_alloc( jpi,jpj,jpk,   zdit, zdjt , zftu, zftv, ztfw  ) 
       !
       IF( kt == kit000 )  THEN
@@ -388,6 +385,4 @@
       !                                                           ! ===============
       !
-      CALL wrk_dealloc( jpi, jpj,      zdkt, zdk1t, z2d ) 
-      CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt , zftu, zftv, ztfw  ) 
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_iso')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap_blp.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap_blp.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap_blp.F90	(revision 7910)
@@ -25,5 +25,4 @@
    USE lib_mpp        ! distribued memory computing library
    USE timing         ! Timing
-   USE wrk_nemo       ! Memory allocation
    USE iom
 
@@ -87,5 +86,5 @@
       INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices
       REAL(wp) ::   zsign            ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztu, ztv, zaheeu, zaheev
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztu, ztv, zaheeu, zaheev
       !!----------------------------------------------------------------------
       !
@@ -98,5 +97,4 @@
       ENDIF
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   ztu, ztv, zaheeu, zaheev ) 
       !
       l_hst = .FALSE.
@@ -169,5 +167,4 @@
       !                             ! ==================
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   ztu, ztv, zaheeu, zaheev ) 
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_lap')
@@ -203,13 +200,11 @@
       !
       INTEGER ::   ji, jj, jk, jn   ! dummy loop indices
-      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zlap         ! laplacian at t-point
-      REAL(wp), POINTER, DIMENSION(:,:,:)   :: zglu, zglv   ! bottom GRADh of the laplacian (u- and v-points)
-      REAL(wp), POINTER, DIMENSION(:,:,:)   :: zgui, zgvi   ! top    GRADh of the laplacian (u- and v-points)
+      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt) :: zlap         ! laplacian at t-point
+      REAL(wp), DIMENSION(jpi,jpj,kjpt)   :: zglu, zglv   ! bottom GRADh of the laplacian (u- and v-points)
+      REAL(wp), DIMENSION(jpi,jpj,kjpt)   :: zgui, zgvi   ! top    GRADh of the laplacian (u- and v-points)
       !!---------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_ldf_blp')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,kjpt,   zlap ) 
-      CALL wrk_alloc( jpi,jpj,    kjpt,   zglu, zglv, zgui, zgvi ) 
       !
       IF( kt == kit000 .AND. lwp )  THEN
@@ -253,6 +248,4 @@
       END SELECT
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,kjpt,   zlap ) 
-      CALL wrk_dealloc( jpi,jpj    ,kjpt,   zglu, zglv, zgui, zgvi ) 
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_blp')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90	(revision 7910)
@@ -27,5 +27,4 @@
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -94,12 +93,10 @@
       REAL(wp) ::   ze1ur, ze2vr, ze3wr, zdxt, zdyt, zdzt
       REAL(wp) ::   zah, zah_slp, zaei_slp
-      REAL(wp), POINTER, DIMENSION(:,:  ) :: z2d                                            ! 2D workspace
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw   ! 3D     -
+      REAL(wp), DIMENSION(jpi,jpj) :: z2d                                            ! 2D workspace
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw   ! 3D     -
       !!----------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_ldf_triad')
       !
-      CALL wrk_alloc( jpi,jpj,       z2d ) 
-      CALL wrk_alloc( jpi,jpj,jpk,   zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw  ) 
       !
       IF( .NOT.ALLOCATED(zdkt3d) )  THEN
@@ -435,6 +432,4 @@
       !                                                           ! ===============
       !
-      CALL wrk_dealloc( jpi,jpj,       z2d ) 
-      CALL wrk_dealloc( jpi,jpj,jpk,   zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw  ) 
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_triad')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90	(revision 7910)
@@ -26,5 +26,4 @@
    USE in_out_manager ! I/O manager
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -68,10 +67,10 @@
       REAL(wp) ::   zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_r2dt
       REAL(wp), PARAMETER :: zn2_zero = 1.e-14_wp       ! acceptance criteria for neutrality (N2==0)
-      REAL(wp), POINTER, DIMENSION(:)       ::   zvn2   ! vertical profile of N2 at 1 given point...
-      REAL(wp), POINTER, DIMENSION(:,:)     ::   zvts   ! vertical profile of T and S at 1 given point...
-      REAL(wp), POINTER, DIMENSION(:,:)     ::   zvab   ! vertical profile of alpha and beta
-      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zn2    ! N^2 
-      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zab    ! alpha and beta
-      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   ztrdt, ztrds   ! 3D workspace
+      REAL(wp), DIMENSION(jpk)       ::   zvn2   ! vertical profile of N2 at 1 given point...
+      REAL(wp), DIMENSION(jpk,2)     ::   zvts   ! vertical profile of T and S at 1 given point...
+      REAL(wp), DIMENSION(jpk,2)     ::   zvab   ! vertical profile of alpha and beta
+      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   zn2    ! N^2 
+      REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   zab    ! alpha and beta
+      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   ztrdt, ztrds   ! 3D workspace
       !
       LOGICAL, PARAMETER :: l_LB_debug = .FALSE. ! set to true if you want to follow what is
@@ -84,11 +83,6 @@
       IF( MOD( kt, nn_npc ) == 0 ) THEN
          !
-         CALL wrk_alloc( jpi, jpj, jpk, zn2 )    ! N2
-         CALL wrk_alloc( jpi, jpj, jpk, 2, zab ) ! Alpha and Beta
-         CALL wrk_alloc( jpk, 2, zvts, zvab )    ! 1D column vector at point ji,jj
-         CALL wrk_alloc( jpk, zvn2 )             ! 1D column vector at point ji,jj
 
          IF( l_trdtra )   THEN                    !* Save initial after fields
-            CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )
             ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
             ztrds(:,:,:) = tsa(:,:,:,jp_sal)
@@ -313,5 +307,4 @@
             CALL trd_tra( kt, 'TRA', jp_tem, jptra_npc, ztrdt )
             CALL trd_tra( kt, 'TRA', jp_sal, jptra_npc, ztrds )
-            CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )
          ENDIF
          !
@@ -323,8 +316,4 @@
          ENDIF
          !
-         CALL wrk_dealloc(jpi, jpj, jpk, zn2 )
-         CALL wrk_dealloc(jpi, jpj, jpk, 2, zab )
-         CALL wrk_dealloc(jpk, zvn2 )
-         CALL wrk_dealloc(jpk, 2, zvts, zvab )
          !
       ENDIF   ! IF( MOD( kt, nn_npc ) == 0 ) THEN
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90	(revision 7910)
@@ -43,5 +43,4 @@
    USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
    USE prtctl          ! Print control
-   USE wrk_nemo        ! Memory allocation
    USE timing          ! Timing
 #if defined key_agrif
@@ -91,5 +90,5 @@
       INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices
       REAL(wp) ::   zfact            ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds
       !!----------------------------------------------------------------------
       !
@@ -120,5 +119,4 @@
       ! trends computation initialisation
       IF( l_trdtra )   THEN                    
-         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )
          ztrdt(:,:,jk) = 0._wp
          ztrds(:,:,jk) = 0._wp
@@ -170,5 +168,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_atf, ztrdt )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_atf, ztrds )
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )
       END IF
       !
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90	(revision 7910)
@@ -34,5 +34,4 @@
    USE lib_mpp        ! MPP library
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -113,7 +112,7 @@
       REAL(wp) ::   zCb, zCmax, zze, zpsi, zpsimax, zdelpsi, zCtot, zCze
       REAL(wp) ::   zlogc, zlogc2, zlogc3 
-      REAL(wp), POINTER, DIMENSION(:,:)   :: zekb, zekg, zekr
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: ze0, ze1, ze2, ze3, zea, ztrdt
-      REAL(wp), POINTER, DIMENSION(:,:,:) :: zetot, zchl3d
+      REAL(wp), DIMENSION(jpi,jpj)   :: zekb, zekg, zekr
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze0, ze1, ze2, ze3, zea, ztrdt
+      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zetot, zchl3d
       !!----------------------------------------------------------------------
       !
@@ -127,5 +126,4 @@
       !
       IF( l_trdtra ) THEN      ! trends diagnostic: save the input temperature trend
-         CALL wrk_alloc( jpi,jpj,jpk,   ztrdt ) 
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)
       ENDIF
@@ -161,6 +159,4 @@
       CASE( np_RGB , np_RGBc )         !==  R-G-B fluxes  ==!
          !
-         CALL wrk_alloc( jpi,jpj,       zekb, zekg, zekr        ) 
-         CALL wrk_alloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea, zchl3d ) 
          !
          IF( nqsr == np_RGBc ) THEN          !*  Variable Chlorophyll
@@ -240,6 +236,4 @@
          END DO
          !
-         CALL wrk_dealloc( jpi,jpj,        zekb, zekg, zekr        ) 
-         CALL wrk_dealloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea, zchl3d ) 
          !
       CASE( np_2BD  )            !==  2-bands fluxes  ==!
@@ -282,5 +276,4 @@
       !
       IF( iom_use('qsr3d') ) THEN      ! output the shortwave Radiation distribution
-         CALL wrk_alloc( jpi,jpj,jpk,   zetot )
          !
          zetot(:,:,nksr+1:jpk) = 0._wp     ! below ~400m set to zero
@@ -290,5 +283,4 @@
          CALL iom_put( 'qsr3d', zetot )   ! 3D distribution of shortwave Radiation
          !
-         CALL wrk_dealloc( jpi,jpj,jpk,   zetot ) 
       ENDIF
       !
@@ -301,5 +293,4 @@
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:)
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt )
-         CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt ) 
       ENDIF
       !                       ! print mean trends (used for debugging)
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90	(revision 7910)
@@ -32,5 +32,4 @@
    USE iom            ! xIOS server
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -75,5 +74,5 @@
       INTEGER  ::   ikt, ikb              ! local integers
       REAL(wp) ::   zfact, z1_e3t, zdep   ! local scalar
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds
       !!----------------------------------------------------------------------
       !
@@ -87,5 +86,4 @@
       !
       IF( l_trdtra ) THEN                    !* Save ta and sa trends
-         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)
          ztrds(:,:,:) = tsa(:,:,:,jp_sal)
@@ -232,5 +230,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_nsr, ztrdt )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_nsr, ztrds )
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
       ENDIF
       !
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90	(revision 7910)
@@ -29,5 +29,4 @@
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory allocation
    USE timing         ! Timing
 
@@ -59,5 +58,5 @@
       !
       INTEGER  ::   jk                   ! Dummy loop indices
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt, ztrds   ! 3D workspace
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdt, ztrds   ! 3D workspace
       !!---------------------------------------------------------------------
       !
@@ -71,5 +70,4 @@
       !
       IF( l_trdtra )   THEN                    !* Save ta and sa trends
-         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )
          ztrdt(:,:,:) = tsa(:,:,:,jp_tem)
          ztrds(:,:,:) = tsa(:,:,:,jp_sal)
@@ -98,5 +96,4 @@
          CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt )
          CALL trd_tra( kt, 'TRA', jp_sal, jptra_zdf, ztrds )
-         CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )
       ENDIF
       !                                          ! print mean trends (used for debugging)
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90	(revision 7910)
@@ -32,5 +32,4 @@
    USE in_out_manager ! I/O manager
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -84,10 +83,9 @@
       REAL(wp) ::  z1_ksts, ze3tr       ! local scalars
       REAL(wp) ::  ztra, ze3tb    !   -      -
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztb, zwf
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztb, zwf
       !!---------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_zdf_exp')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   ztb, zwf ) 
       !
       IF( kt == kit000 )  THEN
@@ -144,5 +142,4 @@
       END DO                     ! end of tracer loop
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   ztb, zwf ) 
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_zdf_exp')
Index: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
===================================================================
--- branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90	(revision 7909)
+++ branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90	(revision 7910)
@@ -35,5 +35,4 @@
    USE lbclnk         ! ocean lateral boundary conditions (or mpp link)
    USE lib_mpp        ! MPP library
-   USE wrk_nemo       ! Memory Allocation
    USE timing         ! Timing
 
@@ -83,10 +82,9 @@
       INTEGER  ::  ji, jj, jk, jn   ! dummy loop indices
       REAL(wp) ::  zrhs             ! local scalars
-      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwi, zwt, zwd, zws
+      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwi, zwt, zwd, zws
       !!---------------------------------------------------------------------
       !
       IF( nn_timing == 1 )  CALL timing_start('tra_zdf_imp')
       !
-      CALL wrk_alloc( jpi,jpj,jpk,   zwi, zwt, zwd, zws ) 
       !
       IF( kt == kit000 )  THEN
@@ -208,5 +206,4 @@
       !                                               ! ================= !
       !
-      CALL wrk_dealloc( jpi,jpj,jpk,   zwi, zwt, zwd, zws ) 
       !
       IF( nn_timing == 1 )  CALL timing_stop('tra_zdf_imp')
