Changeset 7910


Ignore:
Timestamp:
2017-04-13T16:21:08+02:00 (4 years ago)
Author:
timgraham
Message:

All wrk_alloc removed

Location:
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM
Files:
175 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limadv_2.F90

    r3625 r7910  
    2323   USE in_out_manager ! I/O manager 
    2424   USE lib_mpp        ! MPP library 
    25    USE wrk_nemo       ! work arrays 
    2625   USE prtctl         ! Print control 
    2726   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    7372      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !    -         - 
    7473      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !    -         - 
    75       REAL(wp), DIMENSION(:,:), POINTER ::   zf0, zfx , zfy , zbet   ! 2D workspace 
    76       REAL(wp), DIMENSION(:,:), POINTER ::   zfm, zfxx, zfyy, zfxy   !  -      - 
    77       REAL(wp), DIMENSION(:,:), POINTER ::   zalg, zalg1, zalg1q     !  -      - 
     74      REAL(wp), DIMENSION(jpi,jpj) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
     75      REAL(wp), DIMENSION(jpi,jpj) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
     76      REAL(wp), DIMENSION(jpi,jpj) ::   zalg, zalg1, zalg1q     !  -      - 
    7877      !--------------------------------------------------------------------- 
    7978 
    80       CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    81       CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    8279 
    8380      ! Limitation of moments.                                            
     
    224221      ENDIF 
    225222      ! 
    226       CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    227       CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    228223      ! 
    229224   END SUBROUTINE lim_adv_x_2 
     
    256251      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !    -         - 
    257252      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !    -         - 
    258       REAL(wp), DIMENSION(:,:), POINTER ::   zf0, zfx , zfy , zbet   ! 2D workspace 
    259       REAL(wp), DIMENSION(:,:), POINTER ::   zfm, zfxx, zfyy, zfxy   !  -      - 
    260       REAL(wp), DIMENSION(:,:), POINTER ::   zalg, zalg1, zalg1q     !  -      - 
     253      REAL(wp), DIMENSION(jpi,jpj) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
     254      REAL(wp), DIMENSION(jpi,jpj) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
     255      REAL(wp), DIMENSION(jpi,jpj) ::   zalg, zalg1, zalg1q     !  -      - 
    261256      !--------------------------------------------------------------------- 
    262257 
    263       CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    264       CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    265258 
    266259      ! Limitation of moments. 
     
    410403      ENDIF 
    411404      ! 
    412       CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    413       CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    414405      ! 
    415406   END SUBROUTINE lim_adv_y_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90

    r7646 r7910  
    2828   USE lbclnk           ! lateral boundary condition - MPP link 
    2929   USE lib_mpp          ! MPP library 
    30    USE wrk_nemo         ! work arrays 
    3130   USE in_out_manager   ! I/O manager 
    3231   USE prtctl           ! Print control 
     
    6564      INTEGER  ::   i_j1, i_jpj        ! Starting/ending j-indices for rheology 
    6665      REAL(wp) ::   zcoef              ! temporary scalar 
    67       REAL(wp), POINTER, DIMENSION(:  ) ::   zind           ! i-averaged indicator of sea-ice 
    68       REAL(wp), POINTER, DIMENSION(:  ) ::   zmsk           ! i-averaged of tmask 
    69       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_io, zv_io   ! ice-ocean velocity 
     66      REAL(wp), DIMENSION(jpj) ::   zind           ! i-averaged indicator of sea-ice 
     67      REAL(wp), DIMENSION(jpj) ::   zmsk           ! i-averaged of tmask 
     68      REAL(wp), DIMENSION(jpi,jpj) ::   zu_io, zv_io   ! ice-ocean velocity 
    7069      !!--------------------------------------------------------------------- 
    7170 
    72       CALL wrk_alloc( jpi, jpj, zu_io, zv_io ) 
    73       CALL wrk_alloc(      jpj, zind , zmsk  ) 
    7471 
    7572      IF( kt == nit000 )   CALL lim_dyn_init_2   ! Initialization (first time-step only) 
     
    206203      IF(ln_ctl)   CALL prt_ctl(tab2d_1=ust2s , clinfo1=' lim_dyn  : ust2s :') 
    207204      ! 
    208       CALL wrk_dealloc( jpi, jpj, zu_io, zv_io ) 
    209       CALL wrk_dealloc(      jpj, zind , zmsk  ) 
    210205      ! 
    211206   END SUBROUTINE lim_dyn_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limhdf_2.F90

    r4990 r7910  
    1818   USE lbclnk           ! lateral boundary condition - MPP exchanges 
    1919   USE lib_mpp          ! MPP library 
    20    USE wrk_nemo         ! work arrays 
    2120   USE prtctl           ! Print control 
    2221   USE in_out_manager   ! I/O manager 
     
    5857      INTEGER  ::   its, iter, ierr   ! local integers 
    5958      REAL(wp) ::   zalfa, zrlxint, zconv, zeps   ! local scalars 
    60       REAL(wp), DIMENSION(:,:), POINTER :: zrlx, zflu, zflv, zdiv0, zdiv, ztab0  
     59      REAL(wp), DIMENSION(jpi,jpj) :: zrlx, zflu, zflv, zdiv0, zdiv, ztab0  
    6160      CHARACTER (len=55) :: charout 
    6261      !!------------------------------------------------------------------- 
    6362 
    64       CALL wrk_alloc( jpi, jpj, zrlx, zflu, zflv, zdiv0, zdiv, ztab0 ) 
    6563 
    6664      !                       !==  Initialisation  ==! 
     
    144142      ENDIF 
    145143      ! 
    146       CALL wrk_dealloc( jpi, jpj, zrlx, zflu, zflv, zdiv0, zdiv, ztab0 ) 
    147144      ! 
    148145   END SUBROUTINE lim_hdf_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limmsh_2.F90

    r7646 r7910  
    2121   USE lib_mpp          ! MPP library 
    2222#if defined key_lim2_vp 
    23    USE wrk_nemo         ! work arrays 
    2423#endif 
    2524   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    5655      REAL(wp) ::   zh1p  , zh2p      !   -      - 
    5756      REAL(wp) ::   zd2d1p, zd1d2p    !   -      - 
    58       REAL(wp), POINTER, DIMENSION(:,:) ::   zd2d1, zd1d2   ! 2D workspace 
     57      REAL(wp), DIMENSION(jpi,jpj) ::   zd2d1, zd1d2   ! 2D workspace 
    5958#endif 
    6059      !!--------------------------------------------------------------------- 
    6160 
    6261#if defined key_lim2_vp 
    63       CALL wrk_alloc( jpi, jpj, zd2d1, zd1d2 ) 
    6462#endif 
    6563 
     
    280278      ! 
    281279#if defined key_lim2_vp 
    282       CALL wrk_dealloc( jpi, jpj, zd2d1, zd1d2 ) 
    283280#endif 
    284281      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limrhg.F90

    r7647 r7910  
    3434   USE lbclnk         ! Lateral Boundary Condition / MPP link 
    3535   USE lib_mpp        ! MPP library 
    36    USE wrk_nemo       ! work arrays 
    3736   USE in_out_manager ! I/O manager 
    3837   USE prtctl         ! Print control 
     
    131130      REAL(wp) ::   zintb, zintn  ! dummy argument 
    132131 
    133       REAL(wp), POINTER, DIMENSION(:,:) ::   zpresh           ! temporary array for ice strength 
    134       REAL(wp), POINTER, DIMENSION(:,:) ::   zpreshc          ! Ice strength on grid cell corners (zpreshc) 
    135       REAL(wp), POINTER, DIMENSION(:,:) ::   zfrld1, zfrld2   ! lead fraction on U/V points 
    136       REAL(wp), POINTER, DIMENSION(:,:) ::   zmass1, zmass2   ! ice/snow mass on U/V points 
    137       REAL(wp), POINTER, DIMENSION(:,:) ::   zcorl1, zcorl2   ! coriolis parameter on U/V points 
    138       REAL(wp), POINTER, DIMENSION(:,:) ::   za1ct , za2ct    ! temporary arrays 
    139       REAL(wp), POINTER, DIMENSION(:,:) ::   v_oce1           ! ocean u/v component on U points                            
    140       REAL(wp), POINTER, DIMENSION(:,:) ::   u_oce2           ! ocean u/v component on V points 
    141       REAL(wp), POINTER, DIMENSION(:,:) ::   u_ice2, v_ice1   ! ice u/v component on V/U point 
    142       REAL(wp), POINTER, DIMENSION(:,:) ::   zf1   , zf2      ! arrays for internal stresses 
    143       REAL(wp), POINTER, DIMENSION(:,:) ::   zmask            ! mask ocean grid points 
     132      REAL(wp), DIMENSION(jpi,jpj) ::   zpresh           ! temporary array for ice strength 
     133      REAL(wp), DIMENSION(jpi,jpj) ::   zpreshc          ! Ice strength on grid cell corners (zpreshc) 
     134      REAL(wp), DIMENSION(jpi,jpj) ::   zfrld1, zfrld2   ! lead fraction on U/V points 
     135      REAL(wp), DIMENSION(jpi,jpj) ::   zmass1, zmass2   ! ice/snow mass on U/V points 
     136      REAL(wp), DIMENSION(jpi,jpj) ::   zcorl1, zcorl2   ! coriolis parameter on U/V points 
     137      REAL(wp), DIMENSION(jpi,jpj) ::   za1ct , za2ct    ! temporary arrays 
     138      REAL(wp), DIMENSION(jpi,jpj) ::   v_oce1           ! ocean u/v component on U points                            
     139      REAL(wp), DIMENSION(jpi,jpj) ::   u_oce2           ! ocean u/v component on V points 
     140      REAL(wp), DIMENSION(jpi,jpj) ::   u_ice2, v_ice1   ! ice u/v component on V/U point 
     141      REAL(wp), DIMENSION(jpi,jpj) ::   zf1   , zf2      ! arrays for internal stresses 
     142      REAL(wp), DIMENSION(jpi,jpj) ::   zmask            ! mask ocean grid points 
    144143       
    145       REAL(wp), POINTER, DIMENSION(:,:) ::   zdt              ! tension at centre of grid cells 
    146       REAL(wp), POINTER, DIMENSION(:,:) ::   zds              ! Shear on northeast corner of grid cells 
    147       REAL(wp), POINTER, DIMENSION(:,:) ::   zs1   , zs2      ! Diagonal stress tensor components zs1 and zs2  
    148       REAL(wp), POINTER, DIMENSION(:,:) ::   zs12             ! Non-diagonal stress tensor component zs12 
    149       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_ice, zv_ice, zresr   ! Local error on velocity 
    150       REAL(wp), POINTER, DIMENSION(:,:) ::   zpice            ! array used for the calculation of ice surface slope: 
     144      REAL(wp), DIMENSION(jpi,jpj) ::   zdt              ! tension at centre of grid cells 
     145      REAL(wp), DIMENSION(jpi,jpj) ::   zds              ! Shear on northeast corner of grid cells 
     146      REAL(wp), DIMENSION(jpi,jpj) ::   zs1   , zs2      ! Diagonal stress tensor components zs1 and zs2  
     147      REAL(wp), DIMENSION(jpi,jpj) ::   zs12             ! Non-diagonal stress tensor component zs12 
     148      REAL(wp), DIMENSION(jpi,jpj) ::   zu_ice, zv_ice, zresr   ! Local error on velocity 
     149      REAL(wp), DIMENSION(jpi,jpj) ::   zpice            ! array used for the calculation of ice surface slope: 
    151150                                                              !   ocean surface (ssh_m) if ice is not embedded 
    152151                                                              !   ice top surface if ice is embedded    
     
    156155      !!------------------------------------------------------------------- 
    157156 
    158       CALL wrk_alloc( jpi,jpj, zpresh, zfrld1, zmass1, zcorl1, za1ct , zpreshc, zfrld2, zmass2, zcorl2, za2ct ) 
    159       CALL wrk_alloc( jpi,jpj, u_oce2, u_ice2, v_oce1 , v_ice1 , zmask               ) 
    160       CALL wrk_alloc( jpi,jpj, zf1   , zu_ice, zf2   , zv_ice , zdt    , zds  ) 
    161       CALL wrk_alloc( jpi,jpj, zs1   , zs2   , zs12   , zresr , zpice                 ) 
    162157 
    163158#if  defined key_lim2 && ! defined key_lim2_vp 
     
    687682      ENDIF 
    688683      ! 
    689       CALL wrk_dealloc( jpi,jpj, zpresh, zfrld1, zmass1, zcorl1, za1ct , zpreshc, zfrld2, zmass2, zcorl2, za2ct ) 
    690       CALL wrk_dealloc( jpi,jpj, u_oce2, u_ice2, v_oce1 , v_ice1 , zmask               ) 
    691       CALL wrk_dealloc( jpi,jpj, zf1   , zu_ice, zf2   , zv_ice , zdt    , zds  ) 
    692       CALL wrk_dealloc( jpi,jpj, zs1   , zs2   , zs12   , zresr , zpice                 ) 
    693684 
    694685   END SUBROUTINE lim_rhg 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90

    r7646 r7910  
    2727   USE lbclnk         ! lateral boundary condition - MPP exchanges 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! work arrays 
    3029   USE in_out_manager ! I/O manager 
    3130   USE prtctl         ! Print control 
     
    8685      REAL(wp) ::   zs22_11, zs22_12, zs22_21, zs22_22 
    8786      REAL(wp) ::   zintb, zintn 
    88       REAL(wp), POINTER, DIMENSION(:,:) ::   zfrld, zmass, zcorl 
    89       REAL(wp), POINTER, DIMENSION(:,:) ::   za1ct, za2ct, zresr 
    90       REAL(wp), POINTER, DIMENSION(:,:) ::   zc1u, zc1v, zc2u, zc2v 
    91       REAL(wp), POINTER, DIMENSION(:,:) ::   zsang, zpice 
    92       REAL(wp), POINTER, DIMENSION(:,:) ::   zu0, zv0 
    93       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_n, zv_n 
    94       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_a, zv_a 
    95       REAL(wp), POINTER, DIMENSION(:,:) ::   zviszeta, zviseta 
    96       REAL(wp), POINTER, DIMENSION(:,:) ::   zzfrld, zztms 
    97       REAL(wp), POINTER, DIMENSION(:,:) ::   zi1, zi2, zmasst, zpresh 
     87      REAL(wp), DIMENSION(jpi,jpj) ::   zfrld, zmass, zcorl 
     88      REAL(wp), DIMENSION(jpi,jpj) ::   za1ct, za2ct, zresr 
     89      REAL(wp), DIMENSION(jpi,jpj) ::   zc1u, zc1v, zc2u, zc2v 
     90      REAL(wp), DIMENSION(jpi,jpj) ::   zsang, zpice 
     91      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu0, zv0 
     92      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu_n, zv_n 
     93      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu_a, zv_a 
     94      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zviszeta, zviseta 
     95      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zzfrld, zztms 
     96      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zi1, zi2, zmasst, zpresh 
    9897      !!------------------------------------------------------------------- 
    9998       
    100       CALL wrk_alloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    101       CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
    102       CALL wrk_alloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    103       CALL wrk_alloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
    10499 
    105100      !  Store initial velocities 
     
    600595      ENDIF 
    601596 
    602       CALL wrk_dealloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    603       CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
    604       CALL wrk_dealloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    605       CALL wrk_dealloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
    606597 
    607598   END SUBROUTINE lim_rhg_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r7646 r7910  
    3535   USE lbclnk           ! ocean lateral boundary condition - MPP exchanges 
    3636   USE lib_mpp          ! MPP library 
    37    USE wrk_nemo         ! work arrays 
    3837   USE in_out_manager   ! I/O manager 
    3938   USE iom              ! I/O library 
     
    111110      REAL(wp) ::   zemp_snw, zqhc,   zcd      !   -      - 
    112111      REAL(wp) ::   zswitch                    !   -      - 
    113       REAL(wp), POINTER, DIMENSION(:,:)   ::   zqnsoce       ! 2D workspace 
    114       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb, zalbp   ! 2D/3D workspace 
     112      REAL(wp), DIMENSION(jpi,jpj)   ::   zqnsoce       ! 2D workspace 
     113      REAL(wp), DIMENSION(jpi,jpj,1) ::   zalb, zalbp   ! 2D/3D workspace 
    115114      !!--------------------------------------------------------------------- 
    116115      ! 
    117       CALL wrk_alloc( jpi, jpj, zqnsoce ) 
    118       CALL wrk_alloc( jpi, jpj, 1, zalb, zalbp ) 
    119116      ! 
    120117      SELECT CASE( nn_ice_embd )             ! levitating or embedded sea-ice option 
     
    269266      ENDIF  
    270267      ! 
    271       CALL wrk_dealloc( jpi, jpj, zqnsoce ) 
    272       CALL wrk_dealloc( jpi, jpj, 1, zalb, zalbp ) 
    273268      ! 
    274269   END SUBROUTINE lim_sbc_flx_2 
     
    308303      REAL(wp) ::   zfrldv, zat_v, zv_i, zvtau_ice, zv_t, zmodi   !   -      - 
    309304      REAL(wp) ::   zsang, zumt                                   !    -         - 
    310       REAL(wp), POINTER, DIMENSION(:,:) ::   ztio_u, ztio_v   ! ocean stress below sea-ice 
     305      REAL(wp), DIMENSION(jpi,jpj) ::   ztio_u, ztio_v   ! ocean stress below sea-ice 
    311306      !!--------------------------------------------------------------------- 
    312307      ! 
    313       CALL wrk_alloc( jpi, jpj, ztio_u, ztio_v ) 
    314308      ! 
    315309      SELECT CASE( cp_ice_msh )      
     
    421415         &                       tab2d_2=vtau, clinfo2=' vtau    : '        , mask2=vmask ) 
    422416      !   
    423       CALL wrk_dealloc( jpi, jpj, ztio_u, ztio_v ) 
    424417      ! 
    425418   END SUBROUTINE lim_sbc_tau_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90

    r7646 r7910  
    3131   USE lbclnk           ! 
    3232   USE lib_mpp          ! 
    33    USE wrk_nemo         ! work arrays 
    3433   USE iom              ! IOM library 
    3534   USE prtctl           ! Print control 
     
    9493      REAL(wp) ::   zrhoij, zrhoijm1     ! temporary scalars 
    9594      REAL(wp) ::   zztmp                ! temporary scalars within a loop 
    96       REAL(wp), POINTER, DIMENSION(:,:)     ::   ztmp      ! 2D workspace 
    97       REAL(wp), POINTER, DIMENSION(:,:)     ::   zqlbsbq   ! link with lead energy budget qldif 
    98       REAL(wp), POINTER, DIMENSION(:,:)     ::   zlicegr   ! link with lateral ice growth  
     95      REAL(wp), DIMENSION(jpi,jpj)     ::   ztmp      ! 2D workspace 
     96      REAL(wp), DIMENSION(jpi,jpj)     ::   zqlbsbq   ! link with lead energy budget qldif 
     97      REAL(wp), DIMENSION(jpi,jpj)     ::   zlicegr   ! link with lateral ice growth  
    9998!!$      REAL(wp), DIMENSION(:,:) ::   firic         ! IR flux over the ice            (outputs only) 
    10099!!$      REAL(wp), DIMENSION(:,:) ::   fcsic         ! Sensible heat flux over the ice (outputs only) 
    101100!!$      REAL(wp), DIMENSION(:,:) ::   fleic         ! Latent heat flux over the ice   (outputs only) 
    102101!!$      REAL(wp), DIMENSION(:,:) ::   qlatic        ! latent flux                     (outputs only) 
    103       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvosif       ! Variation of volume at surface                (outputs only) 
    104       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvobif       ! Variation of ice volume at the bottom ice     (outputs only) 
    105       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvolif       ! Total variation of ice volume                 (outputs only) 
    106       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvonif       ! Surface accretion Snow to Ice transformation  (outputs only) 
    107       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvomif       ! Bottom variation of ice volume due to melting (outputs only) 
    108       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_imasstr    ! Sea-ice transport along i-axis at U-point     (outputs only)  
    109       REAL(wp), POINTER, DIMENSION(:,:) ::   zv_imasstr    ! Sea-ice transport along j-axis at V-point     (outputs only)  
    110       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zmsk        ! 3D workspace 
     102      REAL(wp), DIMENSION(jpi,jpj) ::   zdvosif       ! Variation of volume at surface                (outputs only) 
     103      REAL(wp), DIMENSION(jpi,jpj) ::   zdvobif       ! Variation of ice volume at the bottom ice     (outputs only) 
     104      REAL(wp), DIMENSION(jpi,jpj) ::   zdvolif       ! Total variation of ice volume                 (outputs only) 
     105      REAL(wp), DIMENSION(jpi,jpj) ::   zdvonif       ! Surface accretion Snow to Ice transformation  (outputs only) 
     106      REAL(wp), DIMENSION(jpi,jpj) ::   zdvomif       ! Bottom variation of ice volume due to melting (outputs only) 
     107      REAL(wp), DIMENSION(jpi,jpj) ::   zu_imasstr    ! Sea-ice transport along i-axis at U-point     (outputs only)  
     108      REAL(wp), DIMENSION(jpi,jpj) ::   zv_imasstr    ! Sea-ice transport along j-axis at V-point     (outputs only)  
     109      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmsk        ! 3D workspace 
    111110      !!------------------------------------------------------------------- 
    112111 
    113       CALL wrk_alloc( jpi, jpj, ztmp, zqlbsbq, zlicegr, zdvosif, zdvobif, zdvolif, zdvonif, zdvomif, zu_imasstr, zv_imasstr ) 
    114       CALL wrk_alloc( jpi, jpj, jpk, zmsk ) 
    115112 
    116113      IF( kt == nit000 )   CALL lim_thd_init_2   ! Initialization (first time-step only) 
     
    522519      ENDIF 
    523520       ! 
    524       CALL wrk_dealloc( jpi, jpj, ztmp, zqlbsbq, zlicegr, zdvosif, zdvobif, zdvolif, zdvonif, zdvomif, zu_imasstr, zv_imasstr ) 
    525       CALL wrk_dealloc( jpi, jpj, jpk, zmsk ) 
    526521      ! 
    527522    END SUBROUTINE lim_thd_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_lac_2.F90

    r5836 r7910  
    1515   USE limistate_2  
    1616   USE lib_mpp        ! MPP library 
    17    USE wrk_nemo       ! work arrays 
    1817   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    1918 
     
    8079         iiceform       ,   &  !  1 = ice formed   ; 0 = no ice formed 
    8180         ihemis                !  dummy indice 
    82       REAL(wp), POINTER, DIMENSION(:) ::   zqbgow      !  heat budget of the open water (negative) 
    83       REAL(wp), POINTER, DIMENSION(:) ::   zfrl_old    !  previous sea/ice fraction 
    84       REAL(wp), POINTER, DIMENSION(:) ::   zhice_old   !  previous ice thickness 
    85       REAL(wp), POINTER, DIMENSION(:) ::   zhice0      !  thickness of newly formed ice in leads 
    86       REAL(wp), POINTER, DIMENSION(:) ::   zfrlmin     !  minimum fraction for leads 
    87       REAL(wp), POINTER, DIMENSION(:) ::   zdhicbot    !  part of thickness of newly formed ice in leads which  
     81      REAL(wp), DIMENSION(jpij) ::   zqbgow      !  heat budget of the open water (negative) 
     82      REAL(wp), DIMENSION(jpij) ::   zfrl_old    !  previous sea/ice fraction 
     83      REAL(wp), DIMENSION(jpij) ::   zhice_old   !  previous ice thickness 
     84      REAL(wp), DIMENSION(jpij) ::   zhice0      !  thickness of newly formed ice in leads 
     85      REAL(wp), DIMENSION(jpij) ::   zfrlmin     !  minimum fraction for leads 
     86      REAL(wp), DIMENSION(jpij) ::   zdhicbot    !  part of thickness of newly formed ice in leads which  
    8887                                !  has been already used in transport for example 
    8988      REAL(wp)  ::  & 
     
    102101      !!---------------------------------------------------------------------       
    103102                
    104       CALL wrk_alloc( jpij, zqbgow, zfrl_old, zhice_old, zhice0, zfrlmin, zdhicbot ) 
    105103       
    106104      !-------------------------------------------------------------- 
     
    221219      END DO 
    222220       
    223       CALL wrk_dealloc( jpij, zqbgow, zfrl_old, zhice_old, zhice0, zfrlmin, zdhicbot ) 
    224221      ! 
    225222   END SUBROUTINE lim_thd_lac_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90

    r5407 r7910  
    2121   USE in_out_manager 
    2222   USE lib_mpp          ! MPP library 
    23    USE wrk_nemo         ! work arrays 
    2423   USE lib_fortran      ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2524     
     
    7372      !! 
    7473      INTEGER ::   ji       ! dummy loop indices 
    75       REAL(wp), POINTER, DIMENSION(:) ::   zqcmlts        ! energy due to surface melting 
    76       REAL(wp), POINTER, DIMENSION(:) ::   zqcmltb        ! energy due to bottom melting 
    77       REAL(wp), POINTER, DIMENSION(:) ::   ztsmlt         ! snow/ice surface melting temperature 
    78       REAL(wp), POINTER, DIMENSION(:) ::   ztbif          ! int. temp. at the mid-point of the 1st layer of the snow/ice sys.  
    79       REAL(wp), POINTER, DIMENSION(:) ::   zksn           ! effective conductivity of snow 
    80       REAL(wp), POINTER, DIMENSION(:) ::   zkic           ! effective conductivity of ice 
    81       REAL(wp), POINTER, DIMENSION(:) ::   zksndh         ! thermal cond. at the mid-point of the 1st layer of the snow/ice sys.  
    82       REAL(wp), POINTER, DIMENSION(:) ::   zfcsu          ! conductive heat flux at the surface of the snow/ice system  
    83       REAL(wp), POINTER, DIMENSION(:) ::   zfcsudt        ! = zfcsu * dt 
    84       REAL(wp), POINTER, DIMENSION(:) ::   zi0            ! frac. of the net SW rad. which is not absorbed at the surface 
    85       REAL(wp), POINTER, DIMENSION(:) ::   z1mi0          ! fraction of the net SW radiation absorbed at the surface 
    86       REAL(wp), POINTER, DIMENSION(:) ::   zqmax          ! maximum energy stored in brine pockets 
    87       REAL(wp), POINTER, DIMENSION(:) ::   zrcpdt         ! h_su*rho_su*cp_su/dt(h_su being the thick. of surf. layer) 
    88       REAL(wp), POINTER, DIMENSION(:) ::   zts_old        ! previous surface temperature 
    89       REAL(wp), POINTER, DIMENSION(:) ::   zidsn , z1midsn , zidsnic ! temporary variables 
    90       REAL(wp), POINTER, DIMENSION(:) ::   zfnet          ! net heat flux at the top surface( incl. conductive heat flux) 
    91       REAL(wp), POINTER, DIMENSION(:) ::   zsprecip       ! snow accumulation 
    92       REAL(wp), POINTER, DIMENSION(:) ::   zhsnw_old      ! previous snow thickness 
    93       REAL(wp), POINTER, DIMENSION(:) ::   zdhictop       ! change in ice thickness due to top surf ablation/accretion 
    94       REAL(wp), POINTER, DIMENSION(:) ::   zdhicbot       ! change in ice thickness due to bottom surf abl/acc 
    95       REAL(wp), POINTER, DIMENSION(:) ::   zqsup          ! energy transmitted to ocean (coming from top surf abl/acc) 
    96       REAL(wp), POINTER, DIMENSION(:) ::   zqocea         ! energy transmitted to ocean (coming from bottom sur abl/acc) 
    97       REAL(wp), POINTER, DIMENSION(:) ::   zfrl_old       ! previous sea/ice fraction 
    98       REAL(wp), POINTER, DIMENSION(:) ::   zfrld_1d       ! new sea/ice fraction 
    99       REAL(wp), POINTER, DIMENSION(:) ::   zep            ! internal temperature of the 2nd layer of the snow/ice system 
     74      REAL(wp), DIMENSION(jpij) ::   zqcmlts        ! energy due to surface melting 
     75      REAL(wp), DIMENSION(jpij) ::   zqcmltb        ! energy due to bottom melting 
     76      REAL(wp), DIMENSION(jpij) ::   ztsmlt         ! snow/ice surface melting temperature 
     77      REAL(wp), DIMENSION(jpij) ::   ztbif          ! int. temp. at the mid-point of the 1st layer of the snow/ice sys.  
     78      REAL(wp), DIMENSION(jpij) ::   zksn           ! effective conductivity of snow 
     79      REAL(wp), DIMENSION(jpij) ::   zkic           ! effective conductivity of ice 
     80      REAL(wp), DIMENSION(jpij) ::   zksndh         ! thermal cond. at the mid-point of the 1st layer of the snow/ice sys.  
     81      REAL(wp), DIMENSION(jpij) ::   zfcsu          ! conductive heat flux at the surface of the snow/ice system  
     82      REAL(wp), DIMENSION(jpij) ::   zfcsudt        ! = zfcsu * dt 
     83      REAL(wp), DIMENSION(jpij) ::   zi0            ! frac. of the net SW rad. which is not absorbed at the surface 
     84      REAL(wp), DIMENSION(jpij) ::   z1mi0          ! fraction of the net SW radiation absorbed at the surface 
     85      REAL(wp), DIMENSION(jpij) ::   zqmax          ! maximum energy stored in brine pockets 
     86      REAL(wp), DIMENSION(jpij) ::   zrcpdt         ! h_su*rho_su*cp_su/dt(h_su being the thick. of surf. layer) 
     87      REAL(wp), DIMENSION(jpij) ::   zts_old        ! previous surface temperature 
     88      REAL(wp), DIMENSION(jpij) ::   zidsn , z1midsn , zidsnic ! temporary variables 
     89      REAL(wp), DIMENSION(jpij) ::   zfnet          ! net heat flux at the top surface( incl. conductive heat flux) 
     90      REAL(wp), DIMENSION(jpij) ::   zsprecip       ! snow accumulation 
     91      REAL(wp), DIMENSION(jpij) ::   zhsnw_old      ! previous snow thickness 
     92      REAL(wp), DIMENSION(jpij) ::   zdhictop       ! change in ice thickness due to top surf ablation/accretion 
     93      REAL(wp), DIMENSION(jpij) ::   zdhicbot       ! change in ice thickness due to bottom surf abl/acc 
     94      REAL(wp), DIMENSION(jpij) ::   zqsup          ! energy transmitted to ocean (coming from top surf abl/acc) 
     95      REAL(wp), DIMENSION(jpij) ::   zqocea         ! energy transmitted to ocean (coming from bottom sur abl/acc) 
     96      REAL(wp), DIMENSION(jpij) ::   zfrl_old       ! previous sea/ice fraction 
     97      REAL(wp), DIMENSION(jpij) ::   zfrld_1d       ! new sea/ice fraction 
     98      REAL(wp), DIMENSION(jpij) ::   zep            ! internal temperature of the 2nd layer of the snow/ice system 
    10099      REAL(wp), DIMENSION(3) :: &  
    101100            zplediag  &    ! principle diagonal, subdiag. and supdiag. of the  
     
    164163          , zibmlt, ziqr, zihgnew, zind, ztmp        ! temporary scalars 
    165164       !!---------------------------------------------------------------------- 
    166        CALL wrk_alloc( jpij, ztsmlt, ztbif  , zksn    , zkic    , zksndh , zfcsu  , zfcsudt , zi0      , z1mi0   , zqmax    ) 
    167        CALL wrk_alloc( jpij, zrcpdt, zts_old, zidsn   , z1midsn , zidsnic, zfnet  , zsprecip, zhsnw_old, zdhictop, zdhicbot ) 
    168        CALL wrk_alloc( jpij, zqsup , zqocea , zfrl_old, zfrld_1d, zep    , zqcmlts, zqcmltb                                 ) 
    169165 
    170166       !----------------------------------------------------------------------- 
     
    809805       END DO 
    810806       !  
    811        CALL wrk_dealloc( jpij, ztsmlt, ztbif  , zksn    , zkic    , zksndh , zfcsu  , zfcsudt , zi0      , z1mi0   , zqmax    ) 
    812        CALL wrk_dealloc( jpij, zrcpdt, zts_old, zidsn   , z1midsn , zidsnic, zfnet  , zsprecip, zhsnw_old, zdhictop, zdhicbot ) 
    813        CALL wrk_dealloc( jpij, zqsup , zqocea , zfrl_old, zfrld_1d, zep    , zqcmlts, zqcmltb                                 ) 
    814807       ! 
    815808    END SUBROUTINE lim_thd_zdf_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limtrp_2.F90

    r7646 r7910  
    2727   USE lbclnk          ! lateral boundary conditions -- MPP exchanges 
    2828   USE lib_mpp         ! MPP library 
    29    USE wrk_nemo        ! work arrays 
    3029# if defined key_agrif 
    3130   USE agrif_lim2_interp ! nesting 
     
    7675      REAL(wp) ::   zvbord , zcfl   , zusnit            !   -      - 
    7776      REAL(wp) ::   zrtt   , ztsn   , ztic1 , ztic2     !   -      - 
    78       REAL(wp), POINTER, DIMENSION(:,:)  ::   zui_u , zvi_v , zsm             ! 2D workspace 
    79       REAL(wp), POINTER, DIMENSION(:,:)  ::   zs0ice, zs0sn , zs0a            !  -      - 
    80       REAL(wp), POINTER, DIMENSION(:,:)  ::   zs0c0 , zs0c1 , zs0c2 , zs0st   !  -      - 
     77      REAL(wp), DIMENSION(jpi,jpj)  ::   zui_u , zvi_v , zsm             ! 2D workspace 
     78      REAL(wp), DIMENSION(jpi,jpj)  ::   zs0ice, zs0sn , zs0a            !  -      - 
     79      REAL(wp), DIMENSION(jpi,jpj)  ::   zs0c0 , zs0c1 , zs0c2 , zs0st   !  -      - 
    8180      !--------------------------------------------------------------------- 
    8281 
    83       CALL wrk_alloc( jpi, jpj, zui_u , zvi_v , zsm, zs0ice, zs0sn , zs0a, zs0c0 , zs0c1 , zs0c2 , zs0st ) 
    8482 
    8583      IF( kt == nit000  )   CALL lim_trp_init_2      ! Initialization (first time-step only) 
     
    281279# endif 
    282280      !  
    283       CALL wrk_dealloc( jpi, jpj, zui_u , zvi_v , zsm, zs0ice, zs0sn , zs0a, zs0c0 , zs0c1 , zs0c2 , zs0st ) 
    284281      ! 
    285282   END SUBROUTINE lim_trp_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limwri_2.F90

    r6140 r7910  
    3030   USE in_out_manager 
    3131   USE lib_mpp          ! MPP library 
    32    USE wrk_nemo         ! work arrays 
    3332   USE iom 
    3433   USE ioipsl 
     
    103102         &          zindh, zinda, zindb, ztmu 
    104103      REAL(wp), DIMENSION(1)                ::   zdept 
    105       REAL(wp), POINTER, DIMENSION(:,:)     ::   zfield 
    106       !!------------------------------------------------------------------- 
    107  
    108       CALL wrk_alloc( jpi, jpj, zfield ) 
     104      REAL(wp), DIMENSION(jpi,jpj)     ::   zfield 
     105      !!------------------------------------------------------------------- 
     106 
    109107                                                 !--------------------! 
    110108      IF( kt == nit000 ) THEN                    !   Initialisation   ! 
     
    206204      IF( ( nn_fsbc * niter ) >= nitend )   CALL histclo( nice )  
    207205 
    208       CALL wrk_dealloc( jpi, jpj, zfield ) 
    209206      ! 
    210207   END SUBROUTINE lim_wri_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limadv_prather.F90

    r7646 r7910  
    2121   USE prtctl           ! Print control 
    2222   USE lib_mpp          ! MPP library 
    23    USE wrk_nemo         ! work arrays 
    2423   USE lib_fortran      ! to use key_nosignedzero 
    2524 
     
    6564      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !   -      - 
    6665      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !   -      - 
    67       REAL(wp), POINTER, DIMENSION(:,:) ::   zf0 , zfx  , zfy   , zbet   ! 2D workspace 
    68       REAL(wp), POINTER, DIMENSION(:,:) ::   zfm , zfxx , zfyy  , zfxy   !  -      - 
    69       REAL(wp), POINTER, DIMENSION(:,:) ::   zalg, zalg1, zalg1q         !  -      - 
     66      REAL(wp), DIMENSION(jpi,jpj) ::   zf0 , zfx  , zfy   , zbet   ! 2D workspace 
     67      REAL(wp), DIMENSION(jpi,jpj) ::   zfm , zfxx , zfyy  , zfxy   !  -      - 
     68      REAL(wp), DIMENSION(jpi,jpj) ::   zalg, zalg1, zalg1q         !  -      - 
    7069      !--------------------------------------------------------------------- 
    7170 
    72       CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    73       CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    7471 
    7572      ! Limitation of moments.                                            
     
    218215      ENDIF 
    219216      ! 
    220       CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    221       CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    222217      ! 
    223218   END SUBROUTINE lim_adv_x 
     
    250245      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !    -         - 
    251246      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !    -         - 
    252       REAL(wp), POINTER, DIMENSION(:,:) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
    253       REAL(wp), POINTER, DIMENSION(:,:) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
    254       REAL(wp), POINTER, DIMENSION(:,:) ::   zalg, zalg1, zalg1q     !  -      - 
     247      REAL(wp), DIMENSION(jpi,jpj) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
     248      REAL(wp), DIMENSION(jpi,jpj) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
     249      REAL(wp), DIMENSION(jpi,jpj) ::   zalg, zalg1, zalg1q     !  -      - 
    255250      !--------------------------------------------------------------------- 
    256251 
    257       CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    258       CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    259252 
    260253      ! Limitation of moments. 
     
    404397      ENDIF 
    405398      ! 
    406       CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    407       CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    408399      ! 
    409400   END SUBROUTINE lim_adv_y 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limadv_umx.F90

    r7753 r7910  
    2121   USE lbclnk         ! lateral boundary conditions -- MPP exchanges 
    2222   USE lib_mpp        ! MPP library 
    23    USE wrk_nemo       ! work arrays 
    2423   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2524   USE timing         ! Timing 
     
    6564      REAL(wp) ::   zfp_ui, zfp_vj   !   -      - 
    6665      REAL(wp) ::   zfm_ui, zfm_vj   !   -      - 
    67       REAL(wp), POINTER, DIMENSION(:,:) :: zt_ups, zfu_ups, zfv_ups, ztrd, zfu_ho, zfv_ho, zt_u, zt_v 
     66      REAL(wp), DIMENSION(jpi,jpj) :: zt_ups, zfu_ups, zfv_ups, ztrd, zfu_ho, zfv_ho, zt_u, zt_v 
    6867      !!---------------------------------------------------------------------- 
    6968      ! 
    7069      IF( nn_timing == 1 )  CALL timing_start('lim_adv_umx') 
    7170      ! 
    72       CALL wrk_alloc( jpi,jpj,   zt_ups, zfu_ups, zfv_ups, ztrd, zfu_ho, zfv_ho, zt_u, zt_v ) 
    7371      ! 
    7472      ! 
     
    146144      ! 
    147145      ! 
    148       CALL wrk_dealloc( jpi,jpj,   zt_ups, zfu_ups, zfv_ups, ztrd, zfu_ho, zfv_ho, zt_u, zt_v ) 
    149146      ! 
    150147      IF( nn_timing == 1 )  CALL timing_stop('lim_adv_umx') 
     
    174171      INTEGER  ::   ji, jj    ! dummy loop indices 
    175172      REAL(wp) ::   zc_box    !   -      - 
    176       REAL(wp), POINTER, DIMENSION(:,:) :: zzt 
     173      REAL(wp), DIMENSION(jpi,jpj) :: zzt 
    177174      !!---------------------------------------------------------------------- 
    178175      ! 
    179176      IF( nn_timing == 1 )  CALL timing_start('macho') 
    180177      ! 
    181       CALL wrk_alloc( jpi,jpj,   zzt ) 
    182178      ! 
    183179      IF( MOD( (kt - 1) / nn_fsbc , 2 ) == 0 ) THEN         !==  odd ice time step:  adv_x then adv_y  ==! 
     
    219215      ENDIF       
    220216      ! 
    221       CALL wrk_dealloc( jpi,jpj,   zzt ) 
    222217      ! 
    223218      IF( nn_timing == 1 )  CALL timing_stop('macho') 
     
    245240      INTEGER  ::   ji, jj       ! dummy loop indices 
    246241      REAL(wp) ::   zcu, zdx2, zdx4    !   -      - 
    247       REAL(wp), POINTER, DIMENSION(:,:) :: ztu1, ztu2, ztu3, ztu4 
     242      REAL(wp), DIMENSION(jpi,jpj) :: ztu1, ztu2, ztu3, ztu4 
    248243      !!---------------------------------------------------------------------- 
    249244      ! 
    250245      IF( nn_timing == 1 )  CALL timing_start('ultimate_x') 
    251246      ! 
    252       CALL wrk_alloc( jpi,jpj,   ztu1, ztu2, ztu3, ztu4 ) 
    253247      ! 
    254248      !                                                     !--  Laplacian in i-direction  --! 
     
    346340      END SELECT 
    347341      ! 
    348       CALL wrk_dealloc( jpi,jpj,   ztu1, ztu2, ztu3, ztu4 ) 
    349342      ! 
    350343      IF( nn_timing == 1 )  CALL timing_stop('ultimate_x') 
     
    372365      INTEGER  ::   ji, jj       ! dummy loop indices 
    373366      REAL(wp) ::   zcv, zdy2, zdy4    !   -      - 
    374       REAL(wp), POINTER, DIMENSION(:,:) :: ztv1, ztv2, ztv3, ztv4 
     367      REAL(wp), DIMENSION(jpi,jpj) :: ztv1, ztv2, ztv3, ztv4 
    375368      !!---------------------------------------------------------------------- 
    376369      ! 
    377370      IF( nn_timing == 1 )  CALL timing_start('ultimate_y') 
    378371      ! 
    379       CALL wrk_alloc( jpi,jpj,   ztv1, ztv2, ztv3, ztv4 ) 
    380372      ! 
    381373      !                                                     !--  Laplacian in j-direction  --! 
     
    474466      END SELECT 
    475467      ! 
    476       CALL wrk_dealloc( jpi,jpj,   ztv1, ztv2, ztv3, ztv4 ) 
    477468      ! 
    478469      IF( nn_timing == 1 )  CALL timing_stop('ultimate_y') 
     
    502493      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zsml, z1_dt   ! local scalars 
    503494      REAL(wp) ::   zau, zbu, zcu, zav, zbv, zcv, zup, zdo            !   -      - 
    504       REAL(wp), POINTER, DIMENSION(:,:) :: zbetup, zbetdo, zbup, zbdo, zmsk, zdiv 
     495      REAL(wp), DIMENSION(jpi,jpj) :: zbetup, zbetdo, zbup, zbdo, zmsk, zdiv 
    505496      !!---------------------------------------------------------------------- 
    506497      ! 
    507498      IF( nn_timing == 1 )  CALL timing_start('nonosc_2d') 
    508499      ! 
    509       CALL wrk_alloc( jpi,jpj,   zbetup, zbetdo, zbup, zbdo, zmsk, zdiv ) 
    510500      ! 
    511501      zbig = 1.e+40_wp 
     
    578568      CALL lbc_lnk_multi( paa, 'U', -1., pbb, 'V', -1. )   ! lateral boundary condition (changed sign) 
    579569      ! 
    580       CALL wrk_dealloc( jpi,jpj,   zbetup, zbetdo, zbup, zbdo, zmsk, zdiv ) 
    581570      ! 
    582571      IF( nn_timing == 1 )  CALL timing_stop('nonosc_2d') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limhdf.F90

    r7753 r7910  
    2020   USE lbclnk         ! lateral boundary condition - MPP exchanges 
    2121   USE lib_mpp        ! MPP library 
    22    USE wrk_nemo       ! work arrays 
    2322   USE prtctl         ! Print control 
    2423   USE in_out_manager ! I/O manager 
     
    6665      INTEGER , PARAMETER                 ::  num_convfrq  = 5          ! convergence check frequency of the Crant-Nicholson scheme (perf. optimization) 
    6766      REAL(wp), POINTER, DIMENSION(:)     ::  zconv 
    68       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zrlx, zdiv0, ztab0 
    69       REAL(wp), POINTER, DIMENSION(:,:)   ::  zflu, zflv, zdiv 
     67      REAL(wp), DIMENSION(jpi,jpj,isize) ::  zrlx, zdiv0, ztab0 
     68      REAL(wp), DIMENSION(jpi,jpj)   ::  zflu, zflv, zdiv 
    7069      !!------------------------------------------------------------------- 
    7170      TYPE(arrayptr)   , ALLOCATABLE, DIMENSION(:) ::   pt2d_array, zrlx_array 
     
    8382      ALLOCATE( psgn_array(isize) ) 
    8483 
    85       CALL wrk_alloc( jpi,jpj,       zflu, zflv, zdiv ) 
    86       CALL wrk_alloc( jpi,jpj,isize, zrlx, zdiv0, ztab0 ) 
    8784       
    8885      DO jk= 1, isize 
     
    206203      ENDIF 
    207204      ! 
    208       CALL wrk_dealloc( jpi,jpj,       zflu, zflv, zdiv ) 
    209       CALL wrk_dealloc( jpi,jpj,isize, zrlx, zdiv0, ztab0 ) 
    210205      ! 
    211206      DEALLOCATE( zconv ) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90

    r7761 r7910  
    2828   USE lib_mpp          ! MPP library 
    2929   USE lib_fortran      ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    30    USE wrk_nemo         ! work arrays 
    3130   USE fldread          ! read input fields 
    3231   USE iom 
     
    8281      INTEGER  :: i_hemis, i_fill, jl0   
    8382      REAL(wp)   :: zarg, zV, zconv, zdv  
    84       REAL(wp), POINTER, DIMENSION(:,:)   :: zswitch    ! ice indicator 
    85       REAL(wp), POINTER, DIMENSION(:,:)   :: zht_i_ini, zat_i_ini, zvt_i_ini            !data from namelist or nc file 
    86       REAL(wp), POINTER, DIMENSION(:,:)   :: zts_u_ini, zht_s_ini, zsm_i_ini, ztm_i_ini !data from namelist or nc file 
    87       REAL(wp), POINTER, DIMENSION(:,:,:) :: zh_i_ini, za_i_ini                         !data by cattegories to fill 
    88       INTEGER , POINTER, DIMENSION(:)     :: itest 
    89       !-------------------------------------------------------------------- 
    90  
    91       CALL wrk_alloc( jpi, jpj, jpl, zh_i_ini,  za_i_ini ) 
    92       CALL wrk_alloc( jpi, jpj,      zht_i_ini, zat_i_ini, zvt_i_ini, zts_u_ini, zht_s_ini, zsm_i_ini, ztm_i_ini ) 
    93       CALL wrk_alloc( jpi, jpj,      zswitch ) 
    94       Call wrk_alloc( 4,             itest ) 
     83      REAL(wp), DIMENSION(jpi,jpj)   :: zswitch    ! ice indicator 
     84      REAL(wp), DIMENSION(jpi,jpj)   :: zht_i_ini, zat_i_ini, zvt_i_ini            !data from namelist or nc file 
     85      REAL(wp), DIMENSION(jpi,jpj)   :: zts_u_ini, zht_s_ini, zsm_i_ini, ztm_i_ini !data from namelist or nc file 
     86      REAL(wp), DIMENSION(jpi,jpj,jpl) :: zh_i_ini, za_i_ini                         !data by cattegories to fill 
     87      INTEGER , DIMENSION(4)     :: itest 
     88      !-------------------------------------------------------------------- 
    9589 
    9690      IF(lwp) WRITE(numout,*) 
     
    464458!!!       
    465459 
    466       CALL wrk_dealloc( jpi, jpj, jpl, zh_i_ini,  za_i_ini ) 
    467       CALL wrk_dealloc( jpi, jpj,      zht_i_ini, zat_i_ini, zvt_i_ini, zts_u_ini, zht_s_ini, zsm_i_ini, ztm_i_ini ) 
    468       CALL wrk_dealloc( jpi, jpj,      zswitch ) 
    469460      Call wrk_dealloc( 4,             itest ) 
    470461 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r7753 r7910  
    2121   USE lbclnk           ! lateral boundary condition - MPP exchanges 
    2222   USE lib_mpp          ! MPP library 
    23    USE wrk_nemo         ! work arrays 
    2423 
    2524   USE in_out_manager   ! I/O manager 
     
    110109      REAL(wp) ::   za, zfac              ! local scalar 
    111110      CHARACTER (len = 15) ::   fieldid 
    112       REAL(wp), POINTER, DIMENSION(:,:)   ::   closing_net     ! net rate at which area is removed    (1/s) 
     111      REAL(wp), DIMENSION(jpi,jpj)   ::   closing_net     ! net rate at which area is removed    (1/s) 
    113112                                                               ! (ridging ice area - area of new ridges) / dt 
    114       REAL(wp), POINTER, DIMENSION(:,:)   ::   divu_adv        ! divu as implied by transport scheme  (1/s) 
    115       REAL(wp), POINTER, DIMENSION(:,:)   ::   opning          ! rate of opening due to divergence/shear 
    116       REAL(wp), POINTER, DIMENSION(:,:)   ::   closing_gross   ! rate at which area removed, not counting area of new ridges 
     113      REAL(wp), DIMENSION(jpi,jpj)   ::   divu_adv        ! divu as implied by transport scheme  (1/s) 
     114      REAL(wp), DIMENSION(jpi,jpj)   ::   opning          ! rate of opening due to divergence/shear 
     115      REAL(wp), DIMENSION(jpi,jpj)   ::   closing_gross   ! rate at which area removed, not counting area of new ridges 
    117116      ! 
    118117      INTEGER, PARAMETER ::   nitermax = 20     
     
    122121      IF( nn_timing == 1 )  CALL timing_start('limitd_me') 
    123122 
    124       CALL wrk_alloc( jpi,jpj, closing_net, divu_adv, opning, closing_gross ) 
    125123 
    126124      ! conservation test 
     
    289287      IF( ln_ctl )       CALL lim_prt3D( 'limitd_me' ) 
    290288 
    291       CALL wrk_dealloc( jpi, jpj, closing_net, divu_adv, opning, closing_gross ) 
    292289      ! 
    293290      IF( nn_timing == 1 )  CALL timing_stop('limitd_me') 
     
    305302      INTEGER ::   ji,jj, jl    ! dummy loop indices 
    306303      REAL(wp) ::   Gstari, astari, hrmean, zdummy   ! local scalar 
    307       REAL(wp), POINTER, DIMENSION(:,:,:) ::   Gsum      ! Gsum(n) = sum of areas in categories 0 to n 
    308       !------------------------------------------------------------------------------! 
    309  
    310       CALL wrk_alloc( jpi,jpj,jpl+2, Gsum, kkstart = -1 ) 
     304      REAL(wp), DIMENSION(jpi,jpj,-1:jpl) ::   Gsum      ! Gsum(n) = sum of areas in categories 0 to n 
     305      !------------------------------------------------------------------------------! 
     306 
    311307 
    312308      Gstari     = 1.0/rn_gstar     
     
    477473      END DO 
    478474      ! 
    479       CALL wrk_dealloc( jpi,jpj,jpl+2, Gsum, kkstart = -1 ) 
    480475      ! 
    481476   END SUBROUTINE lim_itd_me_ridgeprep 
     
    501496      REAL(wp) ::   hL, hR, farea    ! left and right limits of integration 
    502497 
    503       INTEGER , POINTER, DIMENSION(:) ::   indxi, indxj   ! compressed indices 
    504       REAL(wp), POINTER, DIMENSION(:) ::   zswitch, fvol   ! new ridge volume going to n2 
    505  
    506       REAL(wp), POINTER, DIMENSION(:) ::   afrac            ! fraction of category area ridged  
    507       REAL(wp), POINTER, DIMENSION(:) ::   ardg1 , ardg2    ! area of ice ridged & new ridges 
    508       REAL(wp), POINTER, DIMENSION(:) ::   vsrdg , esrdg    ! snow volume & energy of ridging ice 
    509       REAL(wp), POINTER, DIMENSION(:) ::   dhr   , dhr2     ! hrmax - hrmin  &  hrmax^2 - hrmin^2 
    510  
    511       REAL(wp), POINTER, DIMENSION(:) ::   vrdg1   ! volume of ice ridged 
    512       REAL(wp), POINTER, DIMENSION(:) ::   vrdg2   ! volume of new ridges 
    513       REAL(wp), POINTER, DIMENSION(:) ::   vsw     ! volume of seawater trapped into ridges 
    514       REAL(wp), POINTER, DIMENSION(:) ::   srdg1   ! sal*volume of ice ridged 
    515       REAL(wp), POINTER, DIMENSION(:) ::   srdg2   ! sal*volume of new ridges 
    516       REAL(wp), POINTER, DIMENSION(:) ::   smsw    ! sal*volume of water trapped into ridges 
    517       REAL(wp), POINTER, DIMENSION(:) ::   oirdg1, oirdg2   ! ice age of ice ridged 
    518  
    519       REAL(wp), POINTER, DIMENSION(:) ::   afrft            ! fraction of category area rafted 
    520       REAL(wp), POINTER, DIMENSION(:) ::   arft1 , arft2    ! area of ice rafted and new rafted zone 
    521       REAL(wp), POINTER, DIMENSION(:) ::   virft , vsrft    ! ice & snow volume of rafting ice 
    522       REAL(wp), POINTER, DIMENSION(:) ::   esrft , smrft    ! snow energy & salinity of rafting ice 
    523       REAL(wp), POINTER, DIMENSION(:) ::   oirft1, oirft2   ! ice age of ice rafted 
    524  
    525       REAL(wp), POINTER, DIMENSION(:,:) ::   eirft      ! ice energy of rafting ice 
    526       REAL(wp), POINTER, DIMENSION(:,:) ::   erdg1      ! enth*volume of ice ridged 
    527       REAL(wp), POINTER, DIMENSION(:,:) ::   erdg2      ! enth*volume of new ridges 
    528       REAL(wp), POINTER, DIMENSION(:,:) ::   ersw       ! enth of water trapped into ridges 
     498      INTEGER , DIMENSION(jpij) ::   indxi, indxj   ! compressed indices 
     499      REAL(wp), DIMENSION(jpij) ::   zswitch, fvol   ! new ridge volume going to n2 
     500 
     501      REAL(wp), DIMENSION(jpij) ::   afrac            ! fraction of category area ridged  
     502      REAL(wp), DIMENSION(jpij) ::   ardg1 , ardg2    ! area of ice ridged & new ridges 
     503      REAL(wp), DIMENSION(jpij) ::   vsrdg , esrdg    ! snow volume & energy of ridging ice 
     504      REAL(wp), DIMENSION(jpij) ::   dhr   , dhr2     ! hrmax - hrmin  &  hrmax^2 - hrmin^2 
     505 
     506      REAL(wp), DIMENSION(jpij) ::   vrdg1   ! volume of ice ridged 
     507      REAL(wp), DIMENSION(jpij) ::   vrdg2   ! volume of new ridges 
     508      REAL(wp), DIMENSION(jpij) ::   vsw     ! volume of seawater trapped into ridges 
     509      REAL(wp), DIMENSION(jpij) ::   srdg1   ! sal*volume of ice ridged 
     510      REAL(wp), DIMENSION(jpij) ::   srdg2   ! sal*volume of new ridges 
     511      REAL(wp), DIMENSION(jpij) ::   smsw    ! sal*volume of water trapped into ridges 
     512      REAL(wp), DIMENSION(jpij) ::   oirdg1, oirdg2   ! ice age of ice ridged 
     513 
     514      REAL(wp), DIMENSION(jpij) ::   afrft            ! fraction of category area rafted 
     515      REAL(wp), DIMENSION(jpij) ::   arft1 , arft2    ! area of ice rafted and new rafted zone 
     516      REAL(wp), DIMENSION(jpij) ::   virft , vsrft    ! ice & snow volume of rafting ice 
     517      REAL(wp), DIMENSION(jpij) ::   esrft , smrft    ! snow energy & salinity of rafting ice 
     518      REAL(wp), DIMENSION(jpij) ::   oirft1, oirft2   ! ice age of ice rafted 
     519 
     520      REAL(wp), DIMENSION(jpij,nlay_i) ::   eirft      ! ice energy of rafting ice 
     521      REAL(wp), DIMENSION(jpij,nlay_i) ::   erdg1      ! enth*volume of ice ridged 
     522      REAL(wp), DIMENSION(jpij,nlay_i) ::   erdg2      ! enth*volume of new ridges 
     523      REAL(wp), DIMENSION(jpij,nlay_i) ::   ersw       ! enth of water trapped into ridges 
    529524      !!---------------------------------------------------------------------- 
    530525 
    531       CALL wrk_alloc( jpij,        indxi, indxj ) 
    532       CALL wrk_alloc( jpij,        zswitch, fvol ) 
    533       CALL wrk_alloc( jpij,        afrac, ardg1, ardg2, vsrdg, esrdg, dhr, dhr2 ) 
    534       CALL wrk_alloc( jpij,        vrdg1, vrdg2, vsw  , srdg1, srdg2, smsw, oirdg1, oirdg2 ) 
    535       CALL wrk_alloc( jpij,        afrft, arft1, arft2, virft, vsrft, esrft, smrft, oirft1, oirft2 ) 
    536       CALL wrk_alloc( jpij,nlay_i, eirft, erdg1, erdg2, ersw ) 
    537526 
    538527      !------------------------------------------------------------------------------- 
     
    732721 
    733722      ! 
    734       CALL wrk_dealloc( jpij,        indxi, indxj ) 
    735       CALL wrk_dealloc( jpij,        zswitch, fvol ) 
    736       CALL wrk_dealloc( jpij,        afrac, ardg1, ardg2, vsrdg, esrdg, dhr, dhr2 ) 
    737       CALL wrk_dealloc( jpij,        vrdg1, vrdg2, vsw  , srdg1, srdg2, smsw, oirdg1, oirdg2 ) 
    738       CALL wrk_dealloc( jpij,        afrft, arft1, arft2, virft, vsrft, esrft, smrft, oirft1, oirft2 ) 
    739       CALL wrk_dealloc( jpij,nlay_i, eirft, erdg1, erdg2, ersw ) 
    740723      ! 
    741724   END SUBROUTINE lim_itd_me_ridgeshift 
     
    760743      INTEGER             ::   numts_rm    ! number of time steps for the P smoothing 
    761744      REAL(wp)            ::   zp, z1_3    ! local scalars 
    762       REAL(wp), POINTER, DIMENSION(:,:) ::   zworka           ! temporary array used here 
    763       REAL(wp), POINTER, DIMENSION(:,:) ::   zstrp1, zstrp2   ! strength at previous time steps 
     745      REAL(wp), DIMENSION(jpi,jpj) ::   zworka           ! temporary array used here 
     746      REAL(wp), DIMENSION(jpi,jpj) ::   zstrp1, zstrp2   ! strength at previous time steps 
    764747      !!---------------------------------------------------------------------- 
    765748 
    766       CALL wrk_alloc( jpi,jpj, zworka, zstrp1, zstrp2 ) 
    767749 
    768750      !------------------------------------------------------------------------------! 
     
    896878      ENDIF ! ksmooth 
    897879 
    898       CALL wrk_dealloc( jpi,jpj, zworka, zstrp1, zstrp2 ) 
    899880      ! 
    900881   END SUBROUTINE lim_itd_me_icestrength 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90

    r7753 r7910  
    2727   USE in_out_manager   ! I/O manager 
    2828   USE lib_mpp          ! MPP library 
    29    USE wrk_nemo         ! work arrays 
    3029   USE lib_fortran      ! to use key_nosignedzero 
    3130   USE limcons          ! conservation tests 
     
    6766      CHARACTER (len = 15) :: fieldid 
    6867 
    69       INTEGER , POINTER, DIMENSION(:,:,:) ::   zdonor   ! donor category index 
    70  
    71       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdhice      ! ice thickness increment 
    72       REAL(wp), POINTER, DIMENSION(:,:,:) ::   g0          ! coefficients for fitting the line of the ITD 
    73       REAL(wp), POINTER, DIMENSION(:,:,:) ::   g1          ! coefficients for fitting the line of the ITD 
    74       REAL(wp), POINTER, DIMENSION(:,:,:) ::   hL          ! left boundary for the ITD for each thickness 
    75       REAL(wp), POINTER, DIMENSION(:,:,:) ::   hR          ! left boundary for the ITD for each thickness 
    76       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zht_i_b     ! old ice thickness 
    77       REAL(wp), POINTER, DIMENSION(:,:,:) ::   dummy_es 
    78       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdaice, zdvice          ! local increment of ice area and volume 
    79       REAL(wp), POINTER, DIMENSION(:)     ::   zvetamin, zvetamax      ! maximum values for etas 
    80       INTEGER , POINTER, DIMENSION(:)     ::   nind_i, nind_j          ! compressed indices for i/j directions 
     68      INTEGER , DIMENSION(jpi,jpj,jpl-1) ::   zdonor   ! donor category index 
     69 
     70      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zdhice      ! ice thickness increment 
     71      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   g0          ! coefficients for fitting the line of the ITD 
     72      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   g1          ! coefficients for fitting the line of the ITD 
     73      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   hL          ! left boundary for the ITD for each thickness 
     74      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   hR          ! left boundary for the ITD for each thickness 
     75      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zht_i_b     ! old ice thickness 
     76      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   dummy_es 
     77      REAL(wp), DIMENSION(jpi,jpj,jpl-1) ::   zdaice, zdvice          ! local increment of ice area and volume 
     78      REAL(wp), DIMENSION((jpi+1)*(jpj+1))     ::   zvetamin, zvetamax      ! maximum values for etas 
     79      INTEGER , DIMENSION((jpi+1)*(jpj+1))     ::   nind_i, nind_j          ! compressed indices for i/j directions 
    8180      INTEGER                             ::   nbrem                   ! number of cells with ice to transfer 
    8281      REAL(wp)                            ::   zslope                  ! used to compute local thermodynamic "speeds" 
    83       REAL(wp), POINTER, DIMENSION(:,:)   ::   zhb0, zhb1              ! category boundaries for thinnes categories 
    84       REAL(wp), POINTER, DIMENSION(:,:)   ::   vt_i_init, vt_i_final   !  ice volume summed over categories 
    85       REAL(wp), POINTER, DIMENSION(:,:)   ::   vt_s_init, vt_s_final   !  snow volume summed over categories 
    86       REAL(wp), POINTER, DIMENSION(:,:)   ::   et_i_init, et_i_final   !  ice energy summed over categories 
    87       REAL(wp), POINTER, DIMENSION(:,:)   ::   et_s_init, et_s_final   !  snow energy summed over categories 
    88       INTEGER , POINTER, DIMENSION(:,:)   ::   zremap_flag      ! compute remapping or not ???? 
    89       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zhbnew           ! new boundaries of ice categories 
    90       !!------------------------------------------------------------------ 
    91  
    92       CALL wrk_alloc( jpi,jpj, zremap_flag ) 
    93       CALL wrk_alloc( jpi,jpj,jpl-1, zdonor ) 
    94       CALL wrk_alloc( jpi,jpj,jpl, zdhice, g0, g1, hL, hR, zht_i_b, dummy_es ) 
    95       CALL wrk_alloc( jpi,jpj,jpl-1, zdaice, zdvice )    
    96       CALL wrk_alloc( jpi,jpj,jpl+1, zhbnew, kkstart = 0 )    
    97       CALL wrk_alloc( (jpi+1)*(jpj+1), zvetamin, zvetamax )    
    98       CALL wrk_alloc( (jpi+1)*(jpj+1), nind_i, nind_j )  
    99       CALL wrk_alloc( jpi,jpj, zhb0,zhb1,vt_i_init,vt_i_final,vt_s_init,vt_s_final,et_i_init,et_i_final,et_s_init,et_s_final ) 
     82      REAL(wp), DIMENSION(jpi,jpj)   ::   zhb0, zhb1              ! category boundaries for thinnes categories 
     83      REAL(wp), DIMENSION(jpi,jpj)   ::   vt_i_init, vt_i_final   !  ice volume summed over categories 
     84      REAL(wp), DIMENSION(jpi,jpj)   ::   vt_s_init, vt_s_final   !  snow volume summed over categories 
     85      REAL(wp), DIMENSION(jpi,jpj)   ::   et_i_init, et_i_final   !  ice energy summed over categories 
     86      REAL(wp), DIMENSION(jpi,jpj)   ::   et_s_init, et_s_final   !  snow energy summed over categories 
     87      INTEGER , DIMENSION(jpi,jpj)   ::   zremap_flag      ! compute remapping or not ???? 
     88      REAL(wp), DIMENSION(jpi,jpj,0:jpl) ::   zhbnew           ! new boundaries of ice categories 
     89      !!------------------------------------------------------------------ 
     90 
    10091 
    10192      !!---------------------------------------------------------------------------------------------- 
     
    383374      ENDIF 
    384375 
    385       CALL wrk_dealloc( jpi,jpj, zremap_flag ) 
    386       CALL wrk_dealloc( jpi,jpj,jpl-1, zdonor ) 
    387       CALL wrk_dealloc( jpi,jpj,jpl, zdhice, g0, g1, hL, hR, zht_i_b, dummy_es ) 
    388       CALL wrk_dealloc( jpi,jpj,jpl-1, zdaice, zdvice )    
    389       CALL wrk_dealloc( jpi,jpj,jpl+1, zhbnew, kkstart = 0 )    
    390       CALL wrk_dealloc( (jpi+1)*(jpj+1), zvetamin, zvetamax )    
    391       CALL wrk_dealloc( (jpi+1)*(jpj+1), nind_i, nind_j )  
    392       CALL wrk_dealloc( jpi,jpj, zhb0,zhb1,vt_i_init,vt_i_final,vt_s_init,vt_s_final,et_i_init,et_i_final,et_s_init,et_s_final ) 
    393376 
    394377   END SUBROUTINE lim_itd_th_rem 
     
    477460      INTEGER ::   ii, ij                     ! indices when changing from 2D-1D is done 
    478461 
    479       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zaTsfn 
    480       REAL(wp), POINTER, DIMENSION(:,:)   ::   zworka            ! temporary array used here 
     462      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zaTsfn 
     463      REAL(wp), DIMENSION(jpi,jpj)   ::   zworka            ! temporary array used here 
    481464 
    482465      REAL(wp) ::   zdvsnow, zdesnow   ! snow volume and energy transferred 
     
    486469      REAL(wp) ::   zdaTsf             ! aicen*Tsfcn transferred 
    487470 
    488       INTEGER, POINTER, DIMENSION(:) ::   nind_i, nind_j   ! compressed indices for i/j directions 
     471      INTEGER, DIMENSION((jpi+1)*(jpj+1)) ::   nind_i, nind_j   ! compressed indices for i/j directions 
    489472 
    490473      INTEGER  ::   nbrem             ! number of cells with ice to transfer 
    491474      !!------------------------------------------------------------------ 
    492475 
    493       CALL wrk_alloc( jpi,jpj,jpl, zaTsfn ) 
    494       CALL wrk_alloc( jpi,jpj, zworka ) 
    495       CALL wrk_alloc( (jpi+1)*(jpj+1), nind_i, nind_j ) 
    496476 
    497477      !---------------------------------------------------------------------------------------------- 
     
    621601      END DO 
    622602      ! 
    623       CALL wrk_dealloc( jpi,jpj,jpl, zaTsfn ) 
    624       CALL wrk_dealloc( jpi,jpj, zworka ) 
    625       CALL wrk_dealloc( (jpi+1)*(jpj+1), nind_i, nind_j ) 
    626603      ! 
    627604   END SUBROUTINE lim_itd_shiftice 
     
    643620      CHARACTER (len = 15) :: fieldid 
    644621 
    645       INTEGER , POINTER, DIMENSION(:,:,:) ::   zdonor           ! donor category index 
    646       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdaice, zdvice   ! ice area and volume transferred 
    647  
    648       REAL(wp), POINTER, DIMENSION(:,:) ::   vt_i_init, vt_i_final   ! ice volume summed over categories 
    649       REAL(wp), POINTER, DIMENSION(:,:) ::   vt_s_init, vt_s_final   ! snow volume summed over categories 
     622      INTEGER , DIMENSION(jpi,jpj,jpl) ::   zdonor           ! donor category index 
     623      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zdaice, zdvice   ! ice area and volume transferred 
     624 
     625      REAL(wp), DIMENSION(jpi,jpj) ::   vt_i_init, vt_i_final   ! ice volume summed over categories 
     626      REAL(wp), DIMENSION(jpi,jpj) ::   vt_s_init, vt_s_final   ! snow volume summed over categories 
    650627      !!------------------------------------------------------------------ 
    651628       
    652       CALL wrk_alloc( jpi,jpj,jpl, zdonor )   ! interger 
    653       CALL wrk_alloc( jpi,jpj,jpl, zdaice, zdvice ) 
    654       CALL wrk_alloc( jpi,jpj, vt_i_init, vt_i_final, vt_s_init, vt_s_final ) 
    655629      !      
    656630      IF( con_i ) THEN                 ! conservation check 
     
    772746      ENDIF 
    773747      ! 
    774       CALL wrk_dealloc( jpi,jpj,jpl, zdonor ) 
    775       CALL wrk_dealloc( jpi,jpj,jpl, zdaice, zdvice ) 
    776       CALL wrk_dealloc( jpi,jpj, vt_i_init, vt_i_final, vt_s_init, vt_s_final ) 
    777748 
    778749   END SUBROUTINE lim_itd_th_reb 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r7753 r7910  
    2828   USE lbclnk         ! Lateral Boundary Condition / MPP link 
    2929   USE lib_mpp        ! MPP library 
    30    USE wrk_nemo       ! work arrays 
    3130   USE in_out_manager ! I/O manager 
    3231   USE prtctl         ! Print control 
     
    123122      REAL(wp) ::   zintb, zintn                                             ! dummy argument 
    124123       
    125       REAL(wp), POINTER, DIMENSION(:,:) ::   z1_e1t0, z1_e2t0                ! scale factors 
    126       REAL(wp), POINTER, DIMENSION(:,:) ::   zp_delt                         ! P/delta at T points 
     124      REAL(wp), DIMENSION(jpi,jpj) ::   z1_e1t0, z1_e2t0                ! scale factors 
     125      REAL(wp), DIMENSION(jpi,jpj) ::   zp_delt                         ! P/delta at T points 
    127126      ! 
    128       REAL(wp), POINTER, DIMENSION(:,:) ::   zaU   , zaV                     ! ice fraction on U/V points 
    129       REAL(wp), POINTER, DIMENSION(:,:) ::   zmU_t, zmV_t                    ! ice/snow mass/dt on U/V points 
    130       REAL(wp), POINTER, DIMENSION(:,:) ::   zmf                             ! coriolis parameter at T points 
    131       REAL(wp), POINTER, DIMENSION(:,:) ::   zTauU_ia , ztauV_ia             ! ice-atm. stress at U-V points 
    132       REAL(wp), POINTER, DIMENSION(:,:) ::   zspgU , zspgV                   ! surface pressure gradient at U/V points 
    133       REAL(wp), POINTER, DIMENSION(:,:) ::   v_oceU, u_oceV, v_iceU, u_iceV  ! ocean/ice u/v component on V/U points                            
    134       REAL(wp), POINTER, DIMENSION(:,:) ::   zfU   , zfV                     ! internal stresses 
     127      REAL(wp), DIMENSION(jpi,jpj) ::   zaU   , zaV                     ! ice fraction on U/V points 
     128      REAL(wp), DIMENSION(jpi,jpj) ::   zmU_t, zmV_t                    ! ice/snow mass/dt on U/V points 
     129      REAL(wp), DIMENSION(jpi,jpj) ::   zmf                             ! coriolis parameter at T points 
     130      REAL(wp), DIMENSION(jpi,jpj) ::   zTauU_ia , ztauV_ia             ! ice-atm. stress at U-V points 
     131      REAL(wp), DIMENSION(jpi,jpj) ::   zspgU , zspgV                   ! surface pressure gradient at U/V points 
     132      REAL(wp), DIMENSION(jpi,jpj) ::   v_oceU, u_oceV, v_iceU, u_iceV  ! ocean/ice u/v component on V/U points                            
     133      REAL(wp), DIMENSION(jpi,jpj) ::   zfU   , zfV                     ! internal stresses 
    135134       
    136       REAL(wp), POINTER, DIMENSION(:,:) ::   zds                             ! shear 
    137       REAL(wp), POINTER, DIMENSION(:,:) ::   zs1, zs2, zs12                  ! stress tensor components 
    138       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_ice, zv_ice, zresr           ! check convergence 
    139       REAL(wp), POINTER, DIMENSION(:,:) ::   zpice                           ! array used for the calculation of ice surface slope: 
     135      REAL(wp), DIMENSION(jpi,jpj) ::   zds                             ! shear 
     136      REAL(wp), DIMENSION(jpi,jpj) ::   zs1, zs2, zs12                  ! stress tensor components 
     137      REAL(wp), DIMENSION(jpi,jpj) ::   zu_ice, zv_ice, zresr           ! check convergence 
     138      REAL(wp), DIMENSION(jpi,jpj) ::   zpice                           ! array used for the calculation of ice surface slope: 
    140139                                                                             !   ocean surface (ssh_m) if ice is not embedded 
    141140                                                                             !   ice top surface if ice is embedded    
    142       REAL(wp), POINTER, DIMENSION(:,:) ::   zswitchU, zswitchV              ! dummy arrays 
    143       REAL(wp), POINTER, DIMENSION(:,:) ::   zmaskU, zmaskV                  ! mask for ice presence 
    144       REAL(wp), POINTER, DIMENSION(:,:) ::   zfmask, zwf                     ! mask at F points for the ice 
     141      REAL(wp), DIMENSION(jpi,jpj) ::   zswitchU, zswitchV              ! dummy arrays 
     142      REAL(wp), DIMENSION(jpi,jpj) ::   zmaskU, zmaskV                  ! mask for ice presence 
     143      REAL(wp), DIMENSION(jpi,jpj) ::   zfmask, zwf                     ! mask at F points for the ice 
    145144 
    146145      REAL(wp), PARAMETER               ::   zepsi  = 1.0e-20_wp             ! tolerance parameter 
     
    149148      !!------------------------------------------------------------------- 
    150149 
    151       CALL wrk_alloc( jpi,jpj, z1_e1t0, z1_e2t0, zp_delt ) 
    152       CALL wrk_alloc( jpi,jpj, zaU, zaV, zmU_t, zmV_t, zmf, zTauU_ia, ztauV_ia ) 
    153       CALL wrk_alloc( jpi,jpj, zspgU, zspgV, v_oceU, u_oceV, v_iceU, u_iceV, zfU, zfV ) 
    154       CALL wrk_alloc( jpi,jpj, zds, zs1, zs2, zs12, zu_ice, zv_ice, zresr, zpice ) 
    155       CALL wrk_alloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 
    156150 
    157151#if defined key_agrif  
     
    698692      !      
    699693       
    700       CALL wrk_dealloc( jpi,jpj, z1_e1t0, z1_e2t0, zp_delt ) 
    701       CALL wrk_dealloc( jpi,jpj, zaU, zaV, zmU_t, zmV_t, zmf, zTauU_ia, ztauV_ia ) 
    702       CALL wrk_dealloc( jpi,jpj, zspgU, zspgV, v_oceU, u_oceV, v_iceU, u_iceV, zfU, zfV ) 
    703       CALL wrk_dealloc( jpi,jpj, zds, zs1, zs2, zs12, zu_ice, zv_ice, zresr, zpice ) 
    704       CALL wrk_dealloc( jpi,jpj, zswitchU, zswitchV, zmaskU, zmaskV, zfmask, zwf ) 
    705694 
    706695   END SUBROUTINE lim_rhg 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90

    r7813 r7910  
    2424   USE iom            ! I/O library 
    2525   USE lib_mpp        ! MPP library 
    26    USE wrk_nemo       ! work arrays 
    2726   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2827   USE limctl 
     
    107106      CHARACTER(len=25) ::   znam 
    108107      CHARACTER(len=2)  ::   zchar, zchar1 
    109       REAL(wp), POINTER, DIMENSION(:,:) :: z2d 
    110       !!---------------------------------------------------------------------- 
    111  
    112       CALL wrk_alloc( jpi, jpj, z2d ) 
     108      REAL(wp), DIMENSION(jpi,jpj) :: z2d 
     109      !!---------------------------------------------------------------------- 
     110 
    113111 
    114112      iter = kt + nn_fsbc - 1   ! ice restarts are written at kt == nitrst - nn_fsbc + 1 
     
    301299      ENDIF 
    302300      ! 
    303       CALL wrk_dealloc( jpi, jpj, z2d ) 
    304301      ! 
    305302   END SUBROUTINE lim_rst_write 
     
    314311      INTEGER :: ji, jj, jk, jl 
    315312      REAL(wp) ::   zfice, ziter 
    316       REAL(wp), POINTER, DIMENSION(:,:) ::   z2d 
     313      REAL(wp), DIMENSION(jpi,jpj) ::   z2d 
    317314      CHARACTER(len=25) ::   znam 
    318315      CHARACTER(len=2)  ::   zchar, zchar1 
     
    321318      !!---------------------------------------------------------------------- 
    322319 
    323       CALL wrk_alloc( jpi, jpj, z2d ) 
    324320 
    325321      IF(lwp) THEN 
     
    528524      !CALL iom_close( numrir ) !clem: closed in sbcice_lim.F90 
    529525      ! 
    530       CALL wrk_dealloc( jpi, jpj, z2d ) 
    531526      ! 
    532527   END SUBROUTINE lim_rst_read 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r7753 r7910  
    4242   USE lbclnk         ! ocean lateral boundary condition - MPP exchanges 
    4343   USE lib_mpp        ! MPP library 
    44    USE wrk_nemo       ! work arrays 
    4544   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    4645 
     
    106105      REAL(wp) ::   zqmass           ! Heat flux associated with mass exchange ice->ocean (W.m-2) 
    107106      REAL(wp) ::   zqsr             ! New solar flux received by the ocean 
    108       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb_cs, zalb_os     ! 3D workspace 
    109       REAL(wp), POINTER, DIMENSION(:,:)   ::   zalb                 ! 2D workspace 
     107      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zalb_cs, zalb_os     ! 3D workspace 
     108      REAL(wp), DIMENSION(jpi,jpj)   ::   zalb                 ! 2D workspace 
    110109      !!--------------------------------------------------------------------- 
    111110 
     
    121120       
    122121      ! albedo output 
    123       CALL wrk_alloc( jpi,jpj, zalb )     
    124122 
    125123      zalb(:,:) = 0._wp 
     
    132130      IF( iom_use('albedo'  ) )  CALL iom_put( "albedo"  , zalb(:,:) )           ! ice albedo output 
    133131 
    134       CALL wrk_dealloc( jpi,jpj, zalb )     
    135132 
    136133      DO jj = 1, jpj 
     
    210207      !    Snow/ice albedo (only if sent to coupler, useless in forced mode)   ! 
    211208      !------------------------------------------------------------------------! 
    212       CALL wrk_alloc( jpi,jpj,jpl,   zalb_cs, zalb_os )     
    213209      CALL albedo_ice( t_su, ht_i, ht_s, zalb_cs, zalb_os )  ! cloud-sky and overcast-sky ice albedos 
    214210      alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    215       CALL wrk_dealloc( jpi,jpj,jpl,   zalb_cs, zalb_os ) 
    216211 
    217212      ! conservation test 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r7813 r7910  
    4141   USE lbclnk         ! lateral boundary condition - MPP links 
    4242   USE lib_mpp        ! MPP library 
    43    USE wrk_nemo       ! work arrays 
    4443   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    4544   USE timing         ! Timing 
     
    8786      REAL(wp), PARAMETER :: zfric_umin = 0._wp           ! lower bound for the friction velocity (cice value=5.e-04) 
    8887      REAL(wp), PARAMETER :: zch        = 0.0057_wp       ! heat transfer coefficient 
    89       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_io, zv_io, zfric   ! ice-ocean velocity (m/s) and frictional velocity (m2/s2) 
     88      REAL(wp), DIMENSION(jpi,jpj) ::   zu_io, zv_io, zfric   ! ice-ocean velocity (m/s) and frictional velocity (m2/s2) 
    9089      ! 
    9190      !!------------------------------------------------------------------- 
     
    9392      IF( nn_timing == 1 )   CALL timing_start('limthd') 
    9493 
    95       CALL wrk_alloc( jpi,jpj, zu_io, zv_io, zfric ) 
    9694 
    9795      IF( kt == nit000 .AND. lwp ) THEN 
     
    342340      IF( ln_ctl )       CALL lim_prt3D( 'limthd' ) 
    343341      ! 
    344       CALL wrk_dealloc( jpi,jpj, zu_io, zv_io, zfric ) 
    345342      ! 
    346343      IF( nn_timing == 1 )  CALL timing_stop('limthd') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limthd_da.F90

    r7753 r7910  
    1717   USE ice                    ! LIM variables 
    1818   USE lib_mpp                ! MPP library 
    19    USE wrk_nemo               ! work arrays 
    2019   USE lib_fortran            ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2120 
     
    104103      REAL(wp), PARAMETER ::   zm2   = 1.36_wp 
    105104      ! 
    106       REAL(wp), POINTER, DIMENSION(:,:) ::   zda_tot 
     105      REAL(wp), DIMENSION(jpi,jpj) ::   zda_tot 
    107106      !!--------------------------------------------------------------------- 
    108       CALL wrk_alloc( jpi,jpj, zda_tot ) 
    109107 
    110108      !------------------------------------------------------------! 
     
    168166      WHERE( a_i == 0._wp ) ht_i = 0._wp 
    169167      ! 
    170       CALL wrk_dealloc( jpi,jpj, zda_tot ) 
    171168      ! 
    172169   END SUBROUTINE lim_thd_da 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r7646 r7910  
    2323   USE in_out_manager ! I/O manager 
    2424   USE lib_mpp        ! MPP library 
    25    USE wrk_nemo       ! work arrays 
    2625   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2726    
     
    8988      REAL(wp) ::   zsstK        ! SST in Kelvin 
    9089 
    91       REAL(wp), POINTER, DIMENSION(:) ::   zqprec      ! energy of fallen snow                       (J.m-3) 
    92       REAL(wp), POINTER, DIMENSION(:) ::   zq_su       ! heat for surface ablation                   (J.m-2) 
    93       REAL(wp), POINTER, DIMENSION(:) ::   zq_bo       ! heat for bottom ablation                    (J.m-2) 
    94       REAL(wp), POINTER, DIMENSION(:) ::   zq_rema     ! remaining heat at the end of the routine    (J.m-2) 
    95       REAL(wp), POINTER, DIMENSION(:) ::   zf_tt       ! Heat budget to determine melting or freezing(W.m-2) 
    96       REAL(wp), POINTER, DIMENSION(:) ::   zevap_rema  ! remaining mass flux from sublimation        (kg.m-2) 
    97  
    98       REAL(wp), POINTER, DIMENSION(:) ::   zdh_s_mel   ! snow melt  
    99       REAL(wp), POINTER, DIMENSION(:) ::   zdh_s_pre   ! snow precipitation  
    100       REAL(wp), POINTER, DIMENSION(:) ::   zdh_s_sub   ! snow sublimation 
    101  
    102       REAL(wp), POINTER, DIMENSION(:,:) ::   zdeltah 
    103       REAL(wp), POINTER, DIMENSION(:,:) ::   zh_i      ! ice layer thickness 
    104       INTEGER , POINTER, DIMENSION(:,:) ::   icount    ! number of layers vanished by melting  
    105  
    106       REAL(wp), POINTER, DIMENSION(:) ::   zqh_i       ! total ice heat content  (J.m-2) 
    107       REAL(wp), POINTER, DIMENSION(:) ::   zsnw        ! distribution of snow after wind blowing 
     90      REAL(wp), DIMENSION(jpij) ::   zqprec      ! energy of fallen snow                       (J.m-3) 
     91      REAL(wp), DIMENSION(jpij) ::   zq_su       ! heat for surface ablation                   (J.m-2) 
     92      REAL(wp), DIMENSION(jpij) ::   zq_bo       ! heat for bottom ablation                    (J.m-2) 
     93      REAL(wp), DIMENSION(jpij) ::   zq_rema     ! remaining heat at the end of the routine    (J.m-2) 
     94      REAL(wp), DIMENSION(jpij) ::   zf_tt       ! Heat budget to determine melting or freezing(W.m-2) 
     95      REAL(wp), DIMENSION(jpij) ::   zevap_rema  ! remaining mass flux from sublimation        (kg.m-2) 
     96 
     97      REAL(wp), DIMENSION(jpij) ::   zdh_s_mel   ! snow melt  
     98      REAL(wp), DIMENSION(jpij) ::   zdh_s_pre   ! snow precipitation  
     99      REAL(wp), DIMENSION(jpij) ::   zdh_s_sub   ! snow sublimation 
     100 
     101      REAL(wp), DIMENSION(jpij,nlay_i) ::   zdeltah 
     102      REAL(wp), DIMENSION(jpij,nlay_i) ::   zh_i      ! ice layer thickness 
     103      INTEGER , DIMENSION(jpij,nlay_i) ::   icount    ! number of layers vanished by melting  
     104 
     105      REAL(wp), DIMENSION(jpij) ::   zqh_i       ! total ice heat content  (J.m-2) 
     106      REAL(wp), DIMENSION(jpij) ::   zsnw        ! distribution of snow after wind blowing 
    108107 
    109108      REAL(wp) :: zswitch_sal 
     
    120119      END SELECT 
    121120 
    122       CALL wrk_alloc( jpij, zqprec, zq_su, zq_bo, zf_tt, zq_rema, zsnw, zevap_rema ) 
    123       CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i ) 
    124       CALL wrk_alloc( jpij, nlay_i, zdeltah, zh_i ) 
    125       CALL wrk_alloc( jpij, nlay_i, icount ) 
    126121        
    127122      zqprec   (:) = 0._wp ; zq_su    (:) = 0._wp ; zq_bo    (:) = 0._wp ; zf_tt(:) = 0._wp 
     
    681676      WHERE( ht_i_1d == 0._wp ) a_i_1d = 0._wp 
    682677       
    683       CALL wrk_dealloc( jpij, zqprec, zq_su, zq_bo, zf_tt, zq_rema, zsnw, zevap_rema ) 
    684       CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i ) 
    685       CALL wrk_dealloc( jpij, nlay_i, zdeltah, zh_i ) 
    686       CALL wrk_dealloc( jpij, nlay_i, icount ) 
    687678      ! 
    688679      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r7813 r7910  
    2222   USE in_out_manager ! I/O manager 
    2323   USE lib_mpp        ! MPP library 
    24    USE wrk_nemo       ! work arrays 
    2524   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2625 
     
    9998      INTEGER ::   minnumeqmin, maxnumeqmax 
    10099       
    101       INTEGER, POINTER, DIMENSION(:) ::   numeqmin   ! reference number of top equation 
    102       INTEGER, POINTER, DIMENSION(:) ::   numeqmax   ! reference number of bottom equation 
     100      INTEGER, DIMENSION(jpij) ::   numeqmin   ! reference number of top equation 
     101      INTEGER, DIMENSION(jpij) ::   numeqmax   ! reference number of bottom equation 
    103102       
    104103      REAL(wp) ::   zg1s      =  2._wp        ! for the tridiagonal system 
     
    113112      REAL(wp) ::   zhsu 
    114113       
    115       REAL(wp), POINTER, DIMENSION(:)     ::   isnow       ! switch for presence (1) or absence (0) of snow 
    116       REAL(wp), POINTER, DIMENSION(:)     ::   ztsub       ! old surface temperature (before the iterative procedure ) 
    117       REAL(wp), POINTER, DIMENSION(:)     ::   ztsubit     ! surface temperature at previous iteration 
    118       REAL(wp), POINTER, DIMENSION(:)     ::   zh_i        ! ice layer thickness 
    119       REAL(wp), POINTER, DIMENSION(:)     ::   zh_s        ! snow layer thickness 
    120       REAL(wp), POINTER, DIMENSION(:)     ::   zfsw        ! solar radiation absorbed at the surface 
    121       REAL(wp), POINTER, DIMENSION(:)     ::   zqns_ice_b  ! solar radiation absorbed at the surface 
    122       REAL(wp), POINTER, DIMENSION(:)     ::   zf          ! surface flux function 
    123       REAL(wp), POINTER, DIMENSION(:)     ::   dzf         ! derivative of the surface flux function 
    124       REAL(wp), POINTER, DIMENSION(:)     ::   zerrit      ! current error on temperature 
    125       REAL(wp), POINTER, DIMENSION(:)     ::   zdifcase    ! case of the equation resolution (1->4) 
    126       REAL(wp), POINTER, DIMENSION(:)     ::   zftrice     ! solar radiation transmitted through the ice 
    127       REAL(wp), POINTER, DIMENSION(:)     ::   zihic 
     114      REAL(wp), DIMENSION(jpij)     ::   isnow       ! switch for presence (1) or absence (0) of snow 
     115      REAL(wp), DIMENSION(jpij)     ::   ztsub       ! old surface temperature (before the iterative procedure ) 
     116      REAL(wp), DIMENSION(jpij)     ::   ztsubit     ! surface temperature at previous iteration 
     117      REAL(wp), DIMENSION(jpij)     ::   zh_i        ! ice layer thickness 
     118      REAL(wp), DIMENSION(jpij)     ::   zh_s        ! snow layer thickness 
     119      REAL(wp), DIMENSION(jpij)     ::   zfsw        ! solar radiation absorbed at the surface 
     120      REAL(wp), DIMENSION(jpij)     ::   zqns_ice_b  ! solar radiation absorbed at the surface 
     121      REAL(wp), DIMENSION(jpij)     ::   zf          ! surface flux function 
     122      REAL(wp), DIMENSION(jpij)     ::   dzf         ! derivative of the surface flux function 
     123      REAL(wp), DIMENSION(jpij)     ::   zerrit      ! current error on temperature 
     124      REAL(wp), DIMENSION(jpij)     ::   zdifcase    ! case of the equation resolution (1->4) 
     125      REAL(wp), DIMENSION(jpij)     ::   zftrice     ! solar radiation transmitted through the ice 
     126      REAL(wp), DIMENSION(jpij)     ::   zihic 
    128127       
    129       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztcond_i    ! Ice thermal conductivity 
    130       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradtr_i    ! Radiation transmitted through the ice 
    131       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradab_i    ! Radiation absorbed in the ice 
    132       REAL(wp), POINTER, DIMENSION(:,:)   ::   zkappa_i    ! Kappa factor in the ice 
    133       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztib        ! Old temperature in the ice 
    134       REAL(wp), POINTER, DIMENSION(:,:)   ::   zeta_i      ! Eta factor in the ice 
    135       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztitemp     ! Temporary temperature in the ice to check the convergence 
    136       REAL(wp), POINTER, DIMENSION(:,:)   ::   zspeche_i   ! Ice specific heat 
    137       REAL(wp), POINTER, DIMENSION(:,:)   ::   z_i         ! Vertical cotes of the layers in the ice 
    138       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradtr_s    ! Radiation transmited through the snow 
    139       REAL(wp), POINTER, DIMENSION(:,:)   ::   zradab_s    ! Radiation absorbed in the snow 
    140       REAL(wp), POINTER, DIMENSION(:,:)   ::   zkappa_s    ! Kappa factor in the snow 
    141       REAL(wp), POINTER, DIMENSION(:,:)   ::   zeta_s      ! Eta factor in the snow 
    142       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztstemp     ! Temporary temperature in the snow to check the convergence 
    143       REAL(wp), POINTER, DIMENSION(:,:)   ::   ztsb        ! Temporary temperature in the snow 
    144       REAL(wp), POINTER, DIMENSION(:,:)   ::   z_s         ! Vertical cotes of the layers in the snow 
    145       REAL(wp), POINTER, DIMENSION(:,:)   ::   zindterm    ! 'Ind'ependent term 
    146       REAL(wp), POINTER, DIMENSION(:,:)   ::   zindtbis    ! Temporary 'ind'ependent term 
    147       REAL(wp), POINTER, DIMENSION(:,:)   ::   zdiagbis    ! Temporary 'dia'gonal term 
    148       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrid       ! Tridiagonal system terms 
     128      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   ztcond_i    ! Ice thermal conductivity 
     129      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   zradtr_i    ! Radiation transmitted through the ice 
     130      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   zradab_i    ! Radiation absorbed in the ice 
     131      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   zkappa_i    ! Kappa factor in the ice 
     132      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   ztib        ! Old temperature in the ice 
     133      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   zeta_i      ! Eta factor in the ice 
     134      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   ztitemp     ! Temporary temperature in the ice to check the convergence 
     135      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   zspeche_i   ! Ice specific heat 
     136      REAL(wp), DIMENSION(jpij,nlay_i+1)   ::   z_i         ! Vertical cotes of the layers in the ice 
     137      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   zradtr_s    ! Radiation transmited through the snow 
     138      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   zradab_s    ! Radiation absorbed in the snow 
     139      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   zkappa_s    ! Kappa factor in the snow 
     140      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   zeta_s      ! Eta factor in the snow 
     141      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   ztstemp     ! Temporary temperature in the snow to check the convergence 
     142      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   ztsb        ! Temporary temperature in the snow 
     143      REAL(wp), DIMENSION(jpij,nlay_s+1)   ::   z_s         ! Vertical cotes of the layers in the snow 
     144      REAL(wp), DIMENSION(jpij,nlay_i+3)   ::   zindterm    ! 'Ind'ependent term 
     145      REAL(wp), DIMENSION(jpij,nlay_i+3)   ::   zindtbis    ! Temporary 'ind'ependent term 
     146      REAL(wp), DIMENSION(jpij,nlay_i+3)   ::   zdiagbis    ! Temporary 'dia'gonal term 
     147      REAL(wp), DIMENSION(jpij,nlay_i+3,3) ::   ztrid       ! Tridiagonal system terms 
    149148       
    150149      ! diag errors on heat 
    151       REAL(wp), POINTER, DIMENSION(:)     :: zdq, zq_ini, zhfx_err 
     150      REAL(wp), DIMENSION(jpij)     :: zdq, zq_ini, zhfx_err 
    152151       
    153152      ! Mono-category 
     
    162161      REAL(wp)                            :: zheshth       ! dummy factor 
    163162       
    164       REAL(wp), POINTER, DIMENSION(:)     :: zghe          ! G(he), th. conduct enhancement factor, mono-cat 
     163      REAL(wp), DIMENSION(jpij)     :: zghe          ! G(he), th. conduct enhancement factor, mono-cat 
    165164       
    166165      !!------------------------------------------------------------------      
    167166      !  
    168       CALL wrk_alloc( jpij, numeqmin, numeqmax ) 
    169       CALL wrk_alloc( jpij, isnow, ztsub, ztsubit, zh_i, zh_s, zfsw ) 
    170       CALL wrk_alloc( jpij, zf, dzf, zqns_ice_b, zerrit, zdifcase, zftrice, zihic, zghe ) 
    171       CALL wrk_alloc( jpij,nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart=0 ) 
    172       CALL wrk_alloc( jpij,nlay_s+1,           zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart=0 ) 
    173       CALL wrk_alloc( jpij,nlay_i+3, zindterm, zindtbis, zdiagbis  ) 
    174       CALL wrk_alloc( jpij,nlay_i+3,3, ztrid ) 
    175  
    176       CALL wrk_alloc( jpij, zdq, zq_ini, zhfx_err ) 
     167 
    177168 
    178169      ! --- diag error on heat diffusion - PART 1 --- ! 
     
    792783      END DO    
    793784      ! 
    794       CALL wrk_dealloc( jpij, numeqmin, numeqmax ) 
    795       CALL wrk_dealloc( jpij, isnow, ztsub, ztsubit, zh_i, zh_s, zfsw ) 
    796       CALL wrk_dealloc( jpij, zf, dzf, zqns_ice_b, zerrit, zdifcase, zftrice, zihic, zghe ) 
    797       CALL wrk_dealloc( jpij,nlay_i+1, ztcond_i, zradtr_i, zradab_i, zkappa_i, ztib, zeta_i, ztitemp, z_i, zspeche_i, kjstart = 0 ) 
    798       CALL wrk_dealloc( jpij,nlay_s+1,           zradtr_s, zradab_s, zkappa_s, ztsb, zeta_s, ztstemp, z_s, kjstart = 0 ) 
    799       CALL wrk_dealloc( jpij,nlay_i+3, zindterm, zindtbis, zdiagbis ) 
    800       CALL wrk_dealloc( jpij,nlay_i+3,3, ztrid ) 
    801       CALL wrk_dealloc( jpij, zdq, zq_ini, zhfx_err ) 
    802785 
    803786   END SUBROUTINE lim_thd_dif 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90

    r5134 r7910  
    2929   USE in_out_manager ! I/O manager 
    3030   USE lib_mpp        ! MPP library 
    31    USE wrk_nemo       ! work arrays 
    3231   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    3332 
     
    7675      INTEGER  :: jk0, jk1   !  old/new layer indices 
    7776      ! 
    78       REAL(wp), POINTER, DIMENSION(:,:) :: zqh_cum0, zh_cum0   ! old cumulative enthlapies and layers interfaces 
    79       REAL(wp), POINTER, DIMENSION(:,:) :: zqh_cum1, zh_cum1   ! new cumulative enthlapies and layers interfaces 
    80       REAL(wp), POINTER, DIMENSION(:)   :: zhnew               ! new layers thicknesses 
     77      REAL(wp), DIMENSION(jpij,0:nlay_i+2) :: zqh_cum0, zh_cum0   ! old cumulative enthlapies and layers interfaces 
     78      REAL(wp), DIMENSION(jpij,0:nlay_i) :: zqh_cum1, zh_cum1   ! new cumulative enthlapies and layers interfaces 
     79      REAL(wp), DIMENSION(jpij)   :: zhnew               ! new layers thicknesses 
    8180      !!------------------------------------------------------------------- 
    8281 
    83       CALL wrk_alloc( jpij, nlay_i+3, zqh_cum0, zh_cum0, kjstart = 0 ) 
    84       CALL wrk_alloc( jpij, nlay_i+1, zqh_cum1, zh_cum1, kjstart = 0 ) 
    85       CALL wrk_alloc( jpij, zhnew ) 
    8682 
    8783      !-------------------------------------------------------------------------- 
     
    146142       
    147143      ! 
    148       CALL wrk_dealloc( jpij, nlay_i+3, zqh_cum0, zh_cum0, kjstart = 0 ) 
    149       CALL wrk_dealloc( jpij, nlay_i+1, zqh_cum1, zh_cum1, kjstart = 0 ) 
    150       CALL wrk_dealloc( jpij, zhnew ) 
    151144      ! 
    152145   END SUBROUTINE lim_thd_ent 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90

    r7753 r7910  
    2626   USE in_out_manager ! I/O manager 
    2727   USE lib_mpp        ! MPP library 
    28    USE wrk_nemo       ! work arrays 
    2928   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3029   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    8584      REAL(wp) ::   zv_newfra 
    8685   
    87       INTEGER , POINTER, DIMENSION(:) ::   jcat        ! indexes of categories where new ice grows 
    88       REAL(wp), POINTER, DIMENSION(:) ::   zswinew     ! switch for new ice or not 
    89  
    90       REAL(wp), POINTER, DIMENSION(:) ::   zv_newice   ! volume of accreted ice 
    91       REAL(wp), POINTER, DIMENSION(:) ::   za_newice   ! fractional area of accreted ice 
    92       REAL(wp), POINTER, DIMENSION(:) ::   zh_newice   ! thickness of accreted ice 
    93       REAL(wp), POINTER, DIMENSION(:) ::   ze_newice   ! heat content of accreted ice 
    94       REAL(wp), POINTER, DIMENSION(:) ::   zs_newice   ! salinity of accreted ice 
    95       REAL(wp), POINTER, DIMENSION(:) ::   zo_newice   ! age of accreted ice 
    96       REAL(wp), POINTER, DIMENSION(:) ::   zdv_res     ! residual volume in case of excessive heat budget 
    97       REAL(wp), POINTER, DIMENSION(:) ::   zda_res     ! residual area in case of excessive heat budget 
    98       REAL(wp), POINTER, DIMENSION(:) ::   zat_i_1d    ! total ice fraction     
    99       REAL(wp), POINTER, DIMENSION(:) ::   zv_frazb    ! accretion of frazil ice at the ice bottom 
    100       REAL(wp), POINTER, DIMENSION(:) ::   zvrel_1d    ! relative ice / frazil velocity (1D vector) 
    101  
    102       REAL(wp), POINTER, DIMENSION(:,:) ::   zv_b      ! old volume of ice in category jl 
    103       REAL(wp), POINTER, DIMENSION(:,:) ::   za_b      ! old area of ice in category jl 
    104       REAL(wp), POINTER, DIMENSION(:,:) ::   za_i_1d   ! 1-D version of a_i 
    105       REAL(wp), POINTER, DIMENSION(:,:) ::   zv_i_1d   ! 1-D version of v_i 
    106       REAL(wp), POINTER, DIMENSION(:,:) ::   zsmv_i_1d ! 1-D version of smv_i 
    107  
    108       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ze_i_1d !: 1-D version of e_i 
    109  
    110       REAL(wp), POINTER, DIMENSION(:,:) ::   zvrel     ! relative ice / frazil velocity 
     86      INTEGER , DIMENSION(jpij) ::   jcat        ! indexes of categories where new ice grows 
     87      REAL(wp), DIMENSION(jpij) ::   zswinew     ! switch for new ice or not 
     88 
     89      REAL(wp), DIMENSION(jpij) ::   zv_newice   ! volume of accreted ice 
     90      REAL(wp), DIMENSION(jpij) ::   za_newice   ! fractional area of accreted ice 
     91      REAL(wp), DIMENSION(jpij) ::   zh_newice   ! thickness of accreted ice 
     92      REAL(wp), DIMENSION(jpij) ::   ze_newice   ! heat content of accreted ice 
     93      REAL(wp), DIMENSION(jpij) ::   zs_newice   ! salinity of accreted ice 
     94      REAL(wp), DIMENSION(jpij) ::   zo_newice   ! age of accreted ice 
     95      REAL(wp), DIMENSION(jpij) ::   zdv_res     ! residual volume in case of excessive heat budget 
     96      REAL(wp), DIMENSION(jpij) ::   zda_res     ! residual area in case of excessive heat budget 
     97      REAL(wp), DIMENSION(jpij) ::   zat_i_1d    ! total ice fraction     
     98      REAL(wp), DIMENSION(jpij) ::   zv_frazb    ! accretion of frazil ice at the ice bottom 
     99      REAL(wp), DIMENSION(jpij) ::   zvrel_1d    ! relative ice / frazil velocity (1D vector) 
     100 
     101      REAL(wp), DIMENSION(jpij,jpl) ::   zv_b      ! old volume of ice in category jl 
     102      REAL(wp), DIMENSION(jpij,jpl) ::   za_b      ! old area of ice in category jl 
     103      REAL(wp), DIMENSION(jpij,jpl) ::   za_i_1d   ! 1-D version of a_i 
     104      REAL(wp), DIMENSION(jpij,jpl) ::   zv_i_1d   ! 1-D version of v_i 
     105      REAL(wp), DIMENSION(jpij,jpl) ::   zsmv_i_1d ! 1-D version of smv_i 
     106 
     107      REAL(wp), DIMENSION(jpij,nlay_i,jpl) ::   ze_i_1d !: 1-D version of e_i 
     108 
     109      REAL(wp), DIMENSION(jpi,jpj) ::   zvrel     ! relative ice / frazil velocity 
    111110 
    112111      REAL(wp) :: zcai = 1.4e-3_wp                     ! ice-air drag (clem: should be dependent on coupling/forcing used) 
    113112      !!-----------------------------------------------------------------------! 
    114113 
    115       CALL wrk_alloc( jpij, jcat )   ! integer 
    116       CALL wrk_alloc( jpij, zswinew, zv_newice, za_newice, zh_newice, ze_newice, zs_newice, zo_newice ) 
    117       CALL wrk_alloc( jpij, zdv_res, zda_res, zat_i_1d, zv_frazb, zvrel_1d ) 
    118       CALL wrk_alloc( jpij,jpl, zv_b, za_b, za_i_1d, zv_i_1d, zsmv_i_1d ) 
    119       CALL wrk_alloc( jpij,nlay_i,jpl, ze_i_1d ) 
    120       CALL wrk_alloc( jpi,jpj, zvrel ) 
    121114 
    122115      CALL lim_var_agg(1) 
     
    512505 
    513506      ! 
    514       CALL wrk_dealloc( jpij, jcat )   ! integer 
    515       CALL wrk_dealloc( jpij, zswinew, zv_newice, za_newice, zh_newice, ze_newice, zs_newice, zo_newice ) 
    516       CALL wrk_dealloc( jpij, zdv_res, zda_res, zat_i_1d, zv_frazb, zvrel_1d ) 
    517       CALL wrk_dealloc( jpij,jpl, zv_b, za_b, za_i_1d, zv_i_1d, zsmv_i_1d ) 
    518       CALL wrk_dealloc( jpij,nlay_i,jpl, ze_i_1d ) 
    519       CALL wrk_dealloc( jpi,jpj, zvrel ) 
    520507      ! 
    521508   END SUBROUTINE lim_thd_lac 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r7753 r7910  
    2626   USE lbclnk         ! lateral boundary conditions -- MPP exchanges 
    2727   USE lib_mpp        ! MPP library 
    28    USE wrk_nemo       ! work arrays 
    2928   USE prtctl         ! Print control 
    3029   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    7271      REAL(wp) ::    zvi_b, zsmv_b, zei_b, zfs_b, zfw_b, zft_b 
    7372      REAL(wp) ::    zdv, zda 
    74       REAL(wp), POINTER, DIMENSION(:,:)      ::   zatold, zeiold, zesold, zsmvold  
    75       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   zhimax, zviold, zvsold 
     73      REAL(wp), DIMENSION(jpi,jpj)      ::   zatold, zeiold, zesold, zsmvold  
     74      REAL(wp), DIMENSION(jpi,jpj,jpl)    ::   zhimax, zviold, zvsold 
    7675      ! --- diffusion --- ! 
    77       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   zhdfptab 
     76      REAL(wp), DIMENSION(jpi,jpj,jpl*(ihdf_vars+nlay_i)+1)    ::   zhdfptab 
    7877      INTEGER , PARAMETER                    ::   ihdf_vars  = 6 ! Number of variables in which we apply horizontal diffusion 
    7978                                                                 !  inside limtrp for each ice category , not counting the  
     
    8180      ! --- ultimate macho only --- ! 
    8281      REAL(wp)                               ::   zdt 
    83       REAL(wp), POINTER, DIMENSION(:,:)      ::   zudy, zvdx, zcu_box, zcv_box 
     82      REAL(wp), DIMENSION(jpi,jpj)      ::   zudy, zvdx, zcu_box, zcv_box 
    8483      ! --- prather only --- ! 
    85       REAL(wp), POINTER, DIMENSION(:,:)      ::   zarea 
    86       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   z0opw 
    87       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   z0ice, z0snw, z0ai, z0es , z0smi , z0oi 
    88       REAL(wp), POINTER, DIMENSION(:,:,:,:)  ::   z0ei 
     84      REAL(wp), DIMENSION(jpi,jpj)      ::   zarea 
     85      REAL(wp), DIMENSION(jpi,jpj,1)    ::   z0opw 
     86      REAL(wp), DIMENSION(jpi,jpj,jpl)    ::   z0ice, z0snw, z0ai, z0es , z0smi , z0oi 
     87      REAL(wp), DIMENSION(jpi,jpj,nlay_i,jpl)  ::   z0ei 
    8988      !! 
    9089      !!--------------------------------------------------------------------- 
    9190      IF( nn_timing == 1 )  CALL timing_start('limtrp') 
    9291 
    93       CALL wrk_alloc( jpi,jpj,                            zatold, zeiold, zesold, zsmvold ) 
    94       CALL wrk_alloc( jpi,jpj,jpl,                        zhimax, zviold, zvsold ) 
    95       CALL wrk_alloc( jpi,jpj,jpl*(ihdf_vars + nlay_i)+1, zhdfptab) 
    9692  
    9793      IF( kt == nit000 .AND. lwp ) THEN 
     
    163159                       !=============================! 
    164160       
    165          CALL wrk_alloc( jpi,jpj, zudy, zvdx, zcu_box, zcv_box ) 
    166161       
    167162         IF( kt == nit000 .AND. lwp ) THEN 
     
    213208         END DO 
    214209         ! 
    215          CALL wrk_dealloc( jpi,jpj, zudy, zvdx, zcu_box, zcv_box ) 
    216210          
    217211                       !=============================! 
     
    219213                       !=============================! 
    220214 
    221          CALL wrk_alloc( jpi,jpj,            zarea ) 
    222          CALL wrk_alloc( jpi,jpj,1,          z0opw ) 
    223          CALL wrk_alloc( jpi,jpj,jpl,        z0ice, z0snw, z0ai, z0es , z0smi , z0oi ) 
    224          CALL wrk_alloc( jpi,jpj,nlay_i,jpl, z0ei ) 
    225215          
    226216         IF( kt == nit000 .AND. lwp ) THEN 
     
    354344         END DO 
    355345          
    356          CALL wrk_dealloc( jpi,jpj,            zarea ) 
    357          CALL wrk_dealloc( jpi,jpj,1,          z0opw ) 
    358          CALL wrk_dealloc( jpi,jpj,jpl,        z0ice, z0snw, z0ai, z0es , z0smi , z0oi ) 
    359          CALL wrk_dealloc( jpi,jpj,nlay_i,jpl, z0ei ) 
    360346 
    361347      END SELECT 
     
    525511      IF( ln_limctl )   CALL lim_prt( kt, iiceprt, jiceprt,-1, ' - ice dyn & trp - ' ) 
    526512      ! 
    527       CALL wrk_dealloc( jpi,jpj,                            zatold, zeiold, zesold, zsmvold ) 
    528       CALL wrk_dealloc( jpi,jpj,jpl,                        zhimax, zviold, zvsold ) 
    529       CALL wrk_dealloc( jpi,jpj,jpl*(ihdf_vars + nlay_i)+1, zhdfptab) 
    530513      ! 
    531514      IF( nn_timing == 1 )  CALL timing_stop('limtrp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90

    r7813 r7910  
    4343   USE in_out_manager ! I/O manager 
    4444   USE lib_mpp        ! MPP library 
    45    USE wrk_nemo       ! work arrays 
    4645   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    4746 
     
    289288      REAL(wp) ::   zfac0, zfac1, zsal 
    290289      REAL(wp) ::   zswi0, zswi01, zargtemp , zs_zero    
    291       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_slope_s, zalpha 
     290      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z_slope_s, zalpha 
    292291      REAL(wp), PARAMETER :: zsi0 = 3.5_wp 
    293292      REAL(wp), PARAMETER :: zsi1 = 4.5_wp 
    294293      !!------------------------------------------------------------------ 
    295294 
    296       CALL wrk_alloc( jpi, jpj, jpl, z_slope_s, zalpha ) 
    297295 
    298296      !--------------------------------------- 
     
    378376      ENDIF ! nn_icesal 
    379377      ! 
    380       CALL wrk_dealloc( jpi, jpj, jpl, z_slope_s, zalpha ) 
    381378      ! 
    382379   END SUBROUTINE lim_var_salprof 
     
    434431      REAL(wp) ::   zalpha, zswi0, zswi01, zs_zero              !   -      - 
    435432      ! 
    436       REAL(wp), POINTER, DIMENSION(:) ::   z_slope_s 
     433      REAL(wp), DIMENSION(jpij) ::   z_slope_s 
    437434      REAL(wp), PARAMETER :: zsi0 = 3.5_wp 
    438435      REAL(wp), PARAMETER :: zsi1 = 4.5_wp 
    439436      !!--------------------------------------------------------------------- 
    440437 
    441       CALL wrk_alloc( jpij, z_slope_s ) 
    442438 
    443439      !--------------------------------------- 
     
    503499      ENDIF 
    504500      ! 
    505       CALL wrk_dealloc( jpij, z_slope_s ) 
    506501      ! 
    507502   END SUBROUTINE lim_var_salprof1d 
     
    639634      REAL(wp), DIMENSION(:),   INTENT(in)    ::   zhti, zhts, zai    ! input ice/snow variables 
    640635      REAL(wp), DIMENSION(:,:), INTENT(inout) ::   zht_i, zht_s, za_i ! output ice/snow variables 
    641       INTEGER , POINTER, DIMENSION(:)         ::   itest 
     636      INTEGER , DIMENSION(4)         ::   itest 
    642637  
    643       CALL wrk_alloc( 4, itest ) 
    644638      !-------------------------------------------------------------------- 
    645639      ! initialisation of variables 
     
    765759      ENDDO 
    766760 
    767       CALL wrk_dealloc( 4, itest ) 
    768761      ! 
    769762    END SUBROUTINE lim_var_itd 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90

    r7753 r7910  
    2222   USE lbclnk 
    2323   USE lib_mpp         ! MPP library 
    24    USE wrk_nemo        ! work arrays 
    2524   USE iom 
    2625   USE timing          ! Timing 
     
    5655      REAL(wp) ::  z1_365 
    5756      REAL(wp) ::  z2da, z2db, ztmp 
    58       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zswi2 
    59       REAL(wp), POINTER, DIMENSION(:,:)   ::  z2d, zswi    ! 2D workspace 
     57      REAL(wp), DIMENSION(jpi,jpj,jpl) ::  zswi2 
     58      REAL(wp), DIMENSION(jpi,jpj)   ::  z2d, zswi    ! 2D workspace 
    6059      !!------------------------------------------------------------------- 
    6160 
    6261      IF( nn_timing == 1 )  CALL timing_start('limwri') 
    6362 
    64       CALL wrk_alloc( jpi,jpj,jpl, zswi2 ) 
    65       CALL wrk_alloc( jpi,jpj    , z2d, zswi ) 
    6663 
    6764      !----------------------------- 
     
    229226      !     not yet implemented 
    230227       
    231       CALL wrk_dealloc( jpi, jpj, jpl, zswi2 ) 
    232       CALL wrk_dealloc( jpi, jpj     , z2d, zswi ) 
    233228 
    234229      IF( nn_timing == 1 )  CALL timing_stop('limwri') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90

    r7646 r7910  
    2828   USE agrif_opa_sponge 
    2929   USE lib_mpp 
    30    USE wrk_nemo 
    3130  
    3231   IMPLICIT NONE 
     
    7776      INTEGER ::   ji, jj, jk       ! dummy loop indices 
    7877      INTEGER ::   j1, j2, i1, i2 
    79       REAL(wp), POINTER, DIMENSION(:,:) ::   zub, zvb 
     78      REAL(wp), DIMENSION(jpi,jpj) ::   zub, zvb 
    8079      !!----------------------------------------------------------------------   
    8180      ! 
    8281      IF( Agrif_Root() )   RETURN 
    8382      ! 
    84       CALL wrk_alloc( jpi,jpj,   zub, zvb ) 
    8583      ! 
    8684      Agrif_SpecialValue    = 0._wp 
     
    376374      ENDIF 
    377375      ! 
    378       CALL wrk_dealloc( jpi,jpj,   zub, zvb ) 
    379376      ! 
    380377   END SUBROUTINE Agrif_dyn 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90

    r7646 r7910  
    1414   USE in_out_manager 
    1515   USE agrif_oce 
    16    USE wrk_nemo   
    1716   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    1817 
     
    8887      LOGICAL  :: ll_spdone 
    8988      REAL(wp) :: z1spongearea, zramp 
    90       REAL(wp), POINTER, DIMENSION(:,:) :: ztabramp 
     89      REAL(wp), DIMENSION(jpi,jpj) :: ztabramp 
    9190 
    9291#if defined SPONGE || defined SPONGE_TOP 
     
    9897         ll_spdone=.FALSE. 
    9998 
    100          CALL wrk_alloc( jpi, jpj, ztabramp ) 
    10199 
    102100         ispongearea  = 2 + nn_sponge_len * Agrif_irhox() 
     
    185183      ENDIF 
    186184      ! 
    187       IF (.NOT.ll_spdone) CALL wrk_dealloc( jpi, jpj, ztabramp ) 
    188185      ! 
    189186#endif 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r7646 r7910  
    4040   USE prtctl          ! print control 
    4141   USE fldread         ! read input fields  
    42    USE wrk_nemo        ! Memory allocation  
    4342   USE timing          ! Timing 
    4443   USE trc, ONLY : ln_rsttr, numrtr, numrtw, lrst_trc 
     
    109108      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    110109      INTEGER             ::   ji, jj, jk 
    111       REAL(wp), POINTER, DIMENSION(:,:)   :: zemp 
     110      REAL(wp), DIMENSION(jpi,jpj)   :: zemp 
    112111      ! 
    113112      !!---------------------------------------------------------------------- 
     
    142141      ! 
    143142      IF( .NOT.ln_linssh ) THEN 
    144          CALL wrk_alloc(jpi, jpj, zemp ) 
    145143         zhdivtr(:,:,:) = sf_dyn(jf_div)%fnow(:,:,:) * tmask(:,:,:)    ! effective u-transport 
    146144         emp_b (:,:)    = sf_dyn(jf_empb)%fnow(:,:,1) * tmask(:,:,1)    ! E-P 
    147145         zemp   (:,:)   = 0.5_wp * ( emp(:,:) + emp_b(:,:) ) + rnf(:,:) + fwbcorr * tmask(:,:,1) 
    148146         CALL dta_dyn_ssh( kt, zhdivtr, sshb, zemp, ssha, e3t_a(:,:,:) )  !=  ssh, vertical scale factor & vertical transport 
    149          CALL wrk_dealloc(jpi, jpj, zemp ) 
    150147         !                                           Write in the tracer restart file 
    151148         !                                          ******************************* 
     
    590587      REAL(wp) ::   ztintb     ! ratio applied to before records when doing time interpolation 
    591588      INTEGER  ::   iswap  
    592       REAL(wp), POINTER, DIMENSION(:,:,:) :: zuslp, zvslp, zwslpi, zwslpj 
     589      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zuslp, zvslp, zwslpi, zwslpj 
    593590      !!--------------------------------------------------------------------- 
    594591      ! 
    595       CALL wrk_alloc(jpi, jpj, jpk, zuslp, zvslp, zwslpi, zwslpj ) 
    596592      ! 
    597593      IF( sf_dyn(jf_tem)%ln_tint ) THEN    ! Computes slopes (here avt is used as workspace)                        
     
    663659      ENDIF 
    664660      ! 
    665       CALL wrk_dealloc(jpi, jpj, jpk, zuslp, zvslp, zwslpi, zwslpj ) 
    666661      ! 
    667662   END SUBROUTINE dta_dyn_slp 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r6140 r7910  
    2222   !!   seaice_asm_inc : Apply the seaice increment 
    2323   !!---------------------------------------------------------------------- 
    24    USE wrk_nemo         ! Memory Allocation 
    2524   USE par_oce          ! Ocean space and time domain variables 
    2625   USE dom_oce          ! Ocean space and time domain 
     
    124123      REAL(wp) :: zdate_inc    ! Time axis in increments file 
    125124      ! 
    126       REAL(wp), POINTER, DIMENSION(:,:) ::   hdiv   ! 2D workspace 
     125      REAL(wp), DIMENSION(jpi,jpj) ::   hdiv   ! 2D workspace 
    127126      !! 
    128127      NAMELIST/nam_asminc/ ln_bkgwri,                                      & 
     
    432431      IF ( ln_dyninc .AND. nn_divdmp > 0 ) THEN 
    433432         ! 
    434          CALL wrk_alloc( jpi,jpj,   hdiv )  
    435433         ! 
    436434         DO jt = 1, nn_divdmp 
     
    460458         END DO 
    461459         ! 
    462          CALL wrk_dealloc( jpi,jpj,   hdiv )  
    463460         ! 
    464461      ENDIF 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90

    r7646 r7910  
    1616   !!                    conditions 
    1717   !!---------------------------------------------------------------------- 
    18    USE wrk_nemo        ! Memory Allocation 
    1918   USE timing          ! Timing 
    2019   USE oce             ! ocean dynamics and tracers  
     
    5150      INTEGER ::   jk, ii, ij, ib_bdy, ib, igrd     ! Loop counter 
    5251      LOGICAL ::   ll_dyn2d, ll_dyn3d, ll_orlanski 
    53       REAL(wp), POINTER, DIMENSION(:,:) :: pua2d, pva2d     ! after barotropic velocities 
     52      REAL(wp), DIMENSION(jpi,jpj) :: pua2d, pva2d     ! after barotropic velocities 
    5453      !!---------------------------------------------------------------------- 
    5554      ! 
     
    7372      !------------------------------------------------------- 
    7473 
    75       CALL wrk_alloc( jpi,jpj,   pua2d, pva2d )  
    7674 
    7775      !------------------------------------------------------- 
     
    127125      END IF 
    128126      ! 
    129       CALL wrk_dealloc( jpi,jpj,  pua2d, pva2d )  
    130127      ! 
    131128      IF( nn_timing == 1 )   CALL timing_stop('bdy_dyn') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90

    r7646 r7910  
    2929   USE lib_mpp        ! for mpp_sum   
    3030   USE iom            ! I/O 
    31    USE wrk_nemo       ! Memory Allocation 
    3231   USE timing         ! Timing 
    3332 
     
    151150      INTEGER :: com_east_b, com_west_b, com_south_b, com_north_b  ! Flags for boundaries receiving 
    152151      INTEGER :: iw_b(4), ie_b(4), is_b(4), in_b(4)                ! Arrays for neighbours coordinates 
    153       REAL(wp), POINTER, DIMENSION(:,:)       ::   zfmask  ! temporary fmask array excluding coastal boundary condition (shlat) 
     152      REAL(wp), DIMENSION(jpi,jpj)       ::   zfmask  ! temporary fmask array excluding coastal boundary condition (shlat) 
    154153      !! 
    155154      CHARACTER(LEN=1)                     ::   ctypebdy   !     -        -  
     
    12171216      ! For the flagu/flagv calculation below we require a version of fmask without 
    12181217      ! the land boundary condition (shlat) included: 
    1219       CALL wrk_alloc(jpi,jpj,  zfmask )  
    12201218      DO ij = 2, jpjm1 
    12211219         DO ii = 2, jpim1 
     
    13461344      IF( nb_bdy>0 )   DEALLOCATE( nbidta, nbjdta, nbrdta ) 
    13471345      ! 
    1348       CALL wrk_dealloc(jpi,jpj,   zfmask )  
    13491346      ! 
    13501347      IF( nn_timing == 1 )   CALL timing_stop('bdy_segs') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90

    r7646 r7910  
    2525   USE fldread        ! 
    2626   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    27    USE wrk_nemo       ! Memory allocation 
    2827   USE timing         ! timing 
    2928 
     
    7675      CHARACTER(len=80)                         ::   clfile              !: full file name for tidal input file  
    7776      REAL(wp),ALLOCATABLE, DIMENSION(:,:,:)    ::   dta_read            !: work space to read in tidal harmonics data 
    78       REAL(wp), POINTER, DIMENSION(:,:)         ::   ztr, zti            !:  "     "    "   "   "   "        "      "  
     77      REAL(wp), DIMENSION(jpi,jpj)         ::   ztr, zti            !:  "     "    "   "   "   "        "      "  
    7978      !! 
    8079      TYPE(TIDES_DATA),  POINTER                ::   td                  !: local short cut    
     
    153152               ! given on the global domain (ie global, jpiglo x jpjglo) 
    154153               ! 
    155                CALL wrk_alloc( jpi,jpj,   zti, ztr ) 
    156154               ! 
    157155               ! SSH fields 
     
    203201               CALL iom_close( inum ) 
    204202               ! 
    205                CALL wrk_dealloc( jpi,jpj,   ztr, zti )  
    206203               ! 
    207204            ELSE             
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90

    r7646 r7910  
    1717   USE iom            ! I/O library (iom_get) 
    1818   USE in_out_manager ! I/O manager (ctmp1) 
    19    USE wrk_nemo                      ! Memory allocation 
    2019   USE timing                        ! Timing 
    2120 
     
    5958      REAL(wp) ::  zlam1, zcos_alpha, ze1, ze1deg  ! Case 5 local scalars 
    6059      REAL(wp) ::  zphi1, zsin_alpha, zim05, zjm05 !           
    61       REAL(wp) , POINTER, DIMENSION(:,:) ::  gphidta, glamdta, zdist ! Global lat/lon 
     60      REAL(wp) , DIMENSION(jpidta,jpjdta) ::  gphidta, glamdta, zdist ! Global lat/lon 
    6261      !! 
    6362      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
     
    7877902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 
    7978 
    80       CALL wrk_alloc( jpidta,jpjdta,   gphidta, glamdta, zdist ) 
    8179 
    8280      ! ============================= ! 
     
    187185      jpjzoom = iloc(2) + njmpp - 2  ! corner index of the zoom domain. 
    188186 
    189       CALL wrk_dealloc( jpidta,jpjdta,   gphidta, glamdta, zdist ) 
    190187 
    191188      IF (lwp) THEN 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90

    r6140 r7910  
    1818   USE fldread        ! read input fields 
    1919   USE lib_mpp        ! MPP library 
    20    USE wrk_nemo       ! Memory allocation 
    2120   USE timing         ! Timing 
    2221 
     
    143142      INTEGER ::   ik, il0, il1, ii0, ii1, ij0, ij1  ! local integers 
    144143      REAL(wp)::   zl, zi                            ! local floats 
    145       REAL(wp), POINTER, DIMENSION(:) ::  zup, zvp   ! 1D workspace 
     144      REAL(wp), DIMENSION(jpk) ::  zup, zvp   ! 1D workspace 
    146145      !!---------------------------------------------------------------------- 
    147146      ! 
     
    155154      IF( ln_sco ) THEN                   !==   s- or mixed s-zps-coordinate   ==! 
    156155         ! 
    157          CALL wrk_alloc( jpk,   zup, zvp ) 
    158156         ! 
    159157         IF( kt == nit000 .AND. lwp )THEN 
     
    191189         END DO 
    192190         !  
    193          CALL wrk_dealloc( jpk,   zup, zvp ) 
    194191         !  
    195192      ELSE                                !==   z- or zps- coordinate   ==! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90

    r6140 r7910  
    2727   USE lib_mpp        ! MPP library 
    2828   USE prtctl         ! Print control 
    29    USE wrk_nemo       ! Memory allocation 
    3029   USE timing         ! Timing 
    3130   USE iom            ! I/O manager 
     
    154153      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    155154      REAL(wp) ::   zua, zva     ! local scalars 
    156       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zuv_dta   ! Read in data  
     155      REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   zuv_dta   ! Read in data  
    157156      !!---------------------------------------------------------------------- 
    158157      ! 
    159158      IF( nn_timing == 1 )  CALL timing_start( 'dyn_dmp' ) 
    160159      ! 
    161       CALL wrk_alloc( jpi,jpj,jpk,2,   zuv_dta ) 
    162160      ! 
    163161      !                           !==   read and interpolate U & V current data at kt   ==! 
     
    225223         &                           tab3d_2=va(:,:,:), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    226224      ! 
    227       CALL wrk_dealloc( jpi,jpj,jpk,2,   zuv_dta ) 
    228225      ! 
    229226      IF( nn_timing == 1 )  CALL timing_stop( 'dyn_dmp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/CRS/crsdom.F90

    r7646 r7910  
    3636   USE par_kind 
    3737   USE crslbclnk 
    38    USE wrk_nemo       ! work arrays 
    3938   USE lib_mpp 
    4039 
     
    352351      INTEGER  ::   ji, jj, jk , ii, ij, je_2 
    353352      REAL(wp) ::   zdAm 
    354       REAL(wp), DIMENSION(:,:,:), POINTER ::   zvol, zmask       
     353      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zvol, zmask       
    355354      !!----------------------------------------------------------------   
    356355      ! 
    357       CALL wrk_alloc( jpi,jpj,jpk,   zvol, zmask ) 
    358356      ! 
    359357      p_fld1_crs(:,:,:) = 0._wp 
     
    445443      CALL crs_lbc_lnk( p_fld2_crs, cd_type, 1.0 )  
    446444      ! 
    447       CALL wrk_dealloc( jpi, jpj, jpk, zvol, zmask ) 
    448445      ! 
    449446   END SUBROUTINE crs_dom_facvol 
     
    487484      INTEGER  ::   ii, ij, ijie, ijje, je_2 
    488485      REAL(wp) ::   zflcrs, zsfcrs    
    489       REAL(wp), DIMENSION(:,:,:), POINTER ::   zsurf, zsurfmsk, zmask   
     486      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zsurf, zsurfmsk, zmask   
    490487      !!----------------------------------------------------------------   
    491488      ! 
     
    496493      CASE ( 'VOL' ) 
    497494         ! 
    498          CALL wrk_alloc( jpi,jpj,jpk,   zsurf, zsurfmsk ) 
    499495         !    
    500496         SELECT CASE ( cd_type ) 
     
    585581               END SELECT 
    586582 
    587               CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zsurfmsk ) 
    588583 
    589584         CASE ( 'SUM' ) 
    590585          
    591             CALL wrk_alloc( jpi, jpj, jpk, zsurfmsk ) 
    592586 
    593587            SELECT CASE ( cd_type ) 
     
    763757              ENDIF 
    764758 
    765               CALL wrk_dealloc( jpi, jpj, jpk, zsurfmsk ) 
    766759 
    767760         CASE ( 'MAX' )    !  search the max of unmasked grid cells 
    768761 
    769             CALL wrk_alloc( jpi, jpj, jpk, zmask ) 
    770762 
    771763            SELECT CASE ( cd_type ) 
     
    934926              END SELECT 
    935927 
    936               CALL wrk_dealloc( jpi, jpj, jpk, zmask ) 
    937928 
    938929         CASE ( 'MIN' )      !   Search the min of unmasked grid cells 
    939930 
    940             CALL wrk_alloc( jpi, jpj, jpk, zmask ) 
    941931 
    942932            SELECT CASE ( cd_type ) 
     
    11041094            END SELECT 
    11051095            ! 
    1106             CALL wrk_dealloc( jpi, jpj, jpk, zmask ) 
    11071096            ! 
    11081097         END SELECT 
     
    11491138      INTEGER  :: ijie, ijje, ii, ij, je_2 
    11501139      REAL(wp) :: zflcrs, zsfcrs    
    1151       REAL(wp), DIMENSION(:,:), POINTER :: zsurfmsk    
     1140      REAL(wp), DIMENSION(jpi,jpj) :: zsurfmsk    
    11521141      !!----------------------------------------------------------------   
    11531142      ! 
     
    11581147        CASE ( 'VOL' ) 
    11591148       
    1160             CALL wrk_alloc( jpi, jpj, zsurfmsk ) 
    11611149            zsurfmsk(:,:) =  p_e12(:,:) * p_e3(:,:,1) * p_mask(:,:,1) 
    11621150 
     
    12221210            ENDDO 
    12231211 
    1224             CALL wrk_dealloc( jpi, jpj, zsurfmsk ) 
    12251212 
    12261213         CASE ( 'SUM' ) 
    12271214          
    1228             CALL wrk_alloc( jpi, jpj, zsurfmsk ) 
    12291215            IF( PRESENT( p_e3 ) ) THEN 
    12301216               zsurfmsk(:,:) =  p_e12(:,:) * p_e3(:,:,1) * p_mask(:,:,1) 
     
    13641350              ENDIF 
    13651351 
    1366               CALL wrk_dealloc( jpi, jpj, zsurfmsk ) 
    13671352 
    13681353         CASE ( 'MAX' ) 
     
    16441629      INTEGER ::  ijie, ijje, ii, ij, je_2 
    16451630      REAL(wp) :: ze3crs   
    1646       REAL(wp), DIMENSION(:,:,:), POINTER :: zmask, zsurf    
     1631      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask, zsurf    
    16471632 
    16481633      !!----------------------------------------------------------------   
     
    16521637    
    16531638 
    1654        CALL wrk_alloc( jpi, jpj, jpk, zmask, zsurf ) 
    16551639 
    16561640       SELECT CASE ( cd_type ) 
     
    17561740       CALL crs_lbc_lnk( p_e3_max_crs, cd_type, 1.0, pval=1.0 )   
    17571741       !               
    1758        CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zmask ) 
    17591742       ! 
    17601743   END SUBROUTINE crs_dom_e3 
     
    17731756      INTEGER  :: ji, jj, jk                   ! dummy loop indices 
    17741757      INTEGER  :: ii, ij, je_2 
    1775       REAL(wp), DIMENSION(:,:,:), POINTER :: zsurf, zsurfmsk    
     1758      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsurf, zsurfmsk    
    17761759      !!----------------------------------------------------------------   
    17771760      ! Initialize 
    17781761 
    17791762 
    1780       CALL wrk_alloc( jpi, jpj, jpk, zsurf, zsurfmsk ) 
    17811763      ! 
    17821764      SELECT CASE ( cd_type ) 
     
    18681850      CALL crs_lbc_lnk( p_surf_crs_msk, cd_type, 1.0, pval=1.0 ) 
    18691851 
    1870       CALL wrk_dealloc( jpi, jpj, jpk, zsurfmsk, zsurf ) 
    18711852 
    18721853   END SUBROUTINE crs_dom_sfc 
     
    22362217      !!  local variables 
    22372218      INTEGER  :: ji,jj,jk      ! dummy indices 
    2238       REAL(wp), DIMENSION(:,:)  , POINTER :: zmbk 
     2219      REAL(wp), DIMENSION(jpi_crs,jpj_crs)  :: zmbk 
    22392220      !!---------------------------------------------------------------- 
    22402221    
    2241       CALL wrk_alloc( jpi_crs, jpj_crs, zmbk ) 
    22422222    
    22432223      mbathy_crs(:,:) = jpkm1 
     
    22812261      zmbk(:,:) = REAL( mbkv_crs(:,:), wp )   ;   CALL crs_lbc_lnk(zmbk,'V',1.0) ; mbkv_crs  (:,:) = MAX( INT( zmbk(:,:) ), 1 )  
    22822262      ! 
    2283       CALL wrk_dealloc( jpi_crs, jpj_crs, zmbk ) 
    22842263      ! 
    22852264   END SUBROUTINE crs_dom_bat 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/CRS/crsdomwri.F90

    r6140 r7910  
    2424   USE crsdom         ! coarse grid domain 
    2525   USE crslbclnk       ! crs mediator to lbclnk 
    26    USE wrk_nemo        ! Working array 
    2726 
    2827 
     
    7069      INTEGER           ::   ji, jj, jk   ! dummy loop indices 
    7170      !                                   !  workspaces 
    72       REAL(wp), POINTER, DIMENSION(:,:  ) :: zprt, zprw  
    73       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepu, zdepv 
    74       REAL(wp), POINTER, DIMENSION(:,:  ) :: ze3tp, ze3wp 
     71      REAL(wp), DIMENSION(jpi_crs,jpj_crs) :: zprt, zprw  
     72      REAL(wp), DIMENSION(jpi_crs,jpj_crs,jpk) :: zdepu, zdepv 
     73      REAL(wp), DIMENSION(jpi_crs,jpj_crs) :: ze3tp, ze3wp 
    7574      !!---------------------------------------------------------------------- 
    7675      ! 
    7776      IF( nn_timing == 1 )  CALL timing_start('crs_dom_wri') 
    7877      ! 
    79       CALL wrk_alloc( jpi_crs, jpj_crs,      zprt , zprw  ) 
    80       CALL wrk_alloc( jpi_crs, jpj_crs,      ze3tp, ze3wp ) 
    81       CALL wrk_alloc( jpi_crs, jpj_crs, jpk, zdepu, zdepv ) 
    8278 
    8379      ze3tp(:,:) = 0.0 
     
    298294      END SELECT 
    299295      ! 
    300       CALL wrk_dealloc( jpi_crs, jpj_crs,      zprt , zprw  ) 
    301       CALL wrk_dealloc( jpi_crs, jpj_crs,      ze3tp, ze3wp ) 
    302       CALL wrk_dealloc( jpi_crs, jpj_crs, jpk, zdepu, zdepv ) 
    303296      ! 
    304297      IF( nn_timing == 1 )  CALL timing_stop('crs_dom_wri') 
     
    324317      INTEGER  ::  ji       ! dummy loop indices 
    325318      LOGICAL, DIMENSION(SIZE(puniq,1),SIZE(puniq,2),1) ::  lldbl  ! store whether each point is unique or not 
    326       REAL(wp), POINTER, DIMENSION(:,:) :: ztstref 
     319      REAL(wp), DIMENSION(jpi_crs,jpj_crs) :: ztstref 
    327320      !!---------------------------------------------------------------------- 
    328321      ! 
    329322      IF( nn_timing == 1 )  CALL timing_start('crs_dom_uniq_crs') 
    330323      ! 
    331       CALL wrk_alloc( jpi_crs, jpj_crs, ztstref ) 
    332324      ! 
    333325      ! build an array with different values for each element  
     
    345337      puniq(nldi_crs:nlei_crs,nldj_crs:nlej_crs) = REAL( COUNT( lldbl(nldi_crs:nlei_crs,nldj_crs:nlej_crs,:), dim = 3 ) , wp ) 
    346338      ! 
    347       CALL wrk_dealloc( jpi_crs, jpj_crs, ztstref ) 
    348339      ! 
    349340      IF( nn_timing == 1 )  CALL timing_stop('crs_dom_uniq_crs') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90

    r6140 r7910  
    2525   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2626   USE timing          ! preformance summary 
    27    USE wrk_nemo        ! working array 
    2827 
    2928   IMPLICIT NONE 
     
    5958      REAL(wp) ::   z2dcrsu, z2dcrsv  ! local scalars 
    6059      ! 
    61       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ze3t, ze3u, ze3v, ze3w   ! 3D workspace for e3 
    62       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zt, zt_crs 
    63       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zs, zs_crs   
     60      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3t, ze3u, ze3v, ze3w   ! 3D workspace for e3 
     61      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zt, zs 
     62      REAL(wp), DIMENSION(jpi_crs,jpj_crs,jpk) ::   zt_crs, zs_crs   
    6463      !!---------------------------------------------------------------------- 
    6564      !  
     
    6766 
    6867      !  Initialize arrays 
    69       CALL wrk_alloc( jpi,jpj,jpk,   ze3t, ze3w ) 
    70       CALL wrk_alloc( jpi,jpj,jpk,   ze3u, ze3v ) 
    71       CALL wrk_alloc( jpi,jpj,jpk,   zt  , zs   ) 
    72       ! 
    73       CALL wrk_alloc( jpi_crs,jpj_crs,jpk,   zt_crs, zs_crs ) 
     68      ! 
    7469 
    7570      ! Depth work arrrays 
     
    232227 
    233228      !  free memory 
    234       CALL wrk_dealloc( jpi,jpj,jpk,   ze3t, ze3w ) 
    235       CALL wrk_dealloc( jpi,jpj,jpk,   ze3u, ze3v ) 
    236       CALL wrk_dealloc( jpi,jpj,jpk,   zt  , zs   ) 
    237       CALL wrk_dealloc( jpi_crs,jpj_crs,jpk,   zt_crs, zs_crs ) 
    238229      ! 
    239230      CALL iom_swap( "nemo" )     ! return back on high-resolution grid 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90

    r7646 r7910  
    2222   USE in_out_manager 
    2323   USE lib_mpp 
    24    USE wrk_nemo  
    2524   USE timing                   ! Timing 
    2625 
     
    7372      INTEGER  :: ierr                                ! allocation error status 
    7473      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    75       REAL(wp), DIMENSION(:,:,:), POINTER :: ze3t, ze3u, ze3v, ze3w 
     74      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze3t, ze3u, ze3v, ze3w 
    7675 
    7776      NAMELIST/namcrs/ nn_factx, nn_facty, nn_binref, nn_msh_crs, nn_crs_kz, ln_crs_wn 
     
    183182      
    184183     ! 
    185      CALL wrk_alloc( jpi,jpj,jpk,   ze3t, ze3u, ze3v, ze3w ) 
    186184     ! 
    187185     ze3t(:,:,:) = e3t_n(:,:,:) 
     
    248246      ! 7. Finish and clean-up 
    249247      !--------------------------------------------------------- 
    250       CALL wrk_dealloc( jpi,jpj,jpk,   ze3t, ze3u, ze3v, ze3w ) 
    251248      ! 
    252249   END SUBROUTINE crs_init 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90

    r7753 r7910  
    1616   USE iom            ! I/O manager library 
    1717   USE timing         ! preformance summary 
    18    USE wrk_nemo       ! working arrays 
    1918   USE fldread        ! type FLD_N 
    2019   USE phycst         ! physical constant 
     
    7675      REAL(wp) ::   zaw, zbw, zrw 
    7776      ! 
    78       REAL(wp), POINTER, DIMENSION(:,:)     :: zarea_ssh , zbotpres       ! 2D workspace  
    79       REAL(wp), POINTER, DIMENSION(:,:)     :: zpe                         ! 2D workspace  
    80       REAL(wp), POINTER, DIMENSION(:,:,:)   :: zrhd , zrhop               ! 3D workspace 
    81       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztsn                       ! 4D workspace 
     77      REAL(wp), DIMENSION(jpi,jpj)     :: zarea_ssh , zbotpres       ! 2D workspace  
     78      REAL(wp), DIMENSION(jpi,jpj)     :: zpe                         ! 2D workspace  
     79      REAL(wp), DIMENSION(jpi,jpj,jpk)   :: zrhd , zrhop               ! 3D workspace 
     80      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: ztsn                       ! 4D workspace 
    8281      !!-------------------------------------------------------------------- 
    8382      IF( nn_timing == 1 )   CALL timing_start('dia_ar5') 
     
    8685 
    8786      IF( l_ar5 ) THEN 
    88          CALL wrk_alloc( jpi , jpj              , zarea_ssh , zbotpres ) 
    89          CALL wrk_alloc( jpi , jpj , jpk        , zrhd      , zrhop    ) 
    90          CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn                 ) 
    9187         zarea_ssh(:,:) = area(:,:) * sshn(:,:) 
    9288      ENDIF 
     
    212208      ! Exclude points where rn2 is negative as convection kicks in here and 
    213209      ! work is not being done against stratification 
    214           CALL wrk_alloc( jpi, jpj, zpe ) 
    215210          zpe(:,:) = 0._wp 
    216211          IF( lk_zdfddm ) THEN 
     
    242237          CALL lbc_lnk( zpe, 'T', 1._wp)          
    243238          CALL iom_put( 'tnpeo', zpe ) 
    244           CALL wrk_dealloc( jpi, jpj, zpe ) 
    245239      ENDIF 
    246240      ! 
    247241      IF( l_ar5 ) THEN 
    248         CALL wrk_dealloc( jpi , jpj              , zarea_ssh , zbotpres ) 
    249         CALL wrk_dealloc( jpi , jpj , jpk        , zrhd      , zrhop    ) 
    250         CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn                 ) 
    251242      ENDIF 
    252243      ! 
     
    268259      ! 
    269260      INTEGER    ::  ji, jj, jk 
    270       REAL(wp), POINTER, DIMENSION(:,:)  :: z2d 
     261      REAL(wp), DIMENSION(jpi,jpj)  :: z2d 
    271262 
    272263     
    273264 
    274       CALL wrk_alloc( jpi, jpj, z2d ) 
    275265      z2d(:,:) = pua(:,:,1)  
    276266      DO jk = 1, jpkm1 
     
    309299       ENDIF 
    310300           
    311        CALL wrk_dealloc( jpi, jpj, z2d ) 
    312301 
    313302   END SUBROUTINE dia_ar5_hst 
     
    324313      INTEGER  ::   ji, jj, jk  ! dummy loop indices 
    325314      REAL(wp) ::   zztmp   
    326       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zsaldta   ! Jan/Dec levitus salinity 
     315      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::   zsaldta   ! Jan/Dec levitus salinity 
    327316      ! 
    328317      !!---------------------------------------------------------------------- 
     
    337326      IF( l_ar5 ) THEN 
    338327         ! 
    339          CALL wrk_alloc( jpi , jpj , jpk, jpts, zsaldta ) 
    340328         !                                      ! allocate dia_ar5 arrays 
    341329         IF( dia_ar5_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_ar5_init : unable to allocate arrays' ) 
     
    372360         ENDIF 
    373361         ! 
    374          CALL wrk_dealloc( jpi , jpj , jpk, jpts, zsaldta ) 
    375362         ! 
    376363      ENDIF 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90

    r7646 r7910  
    4040   USE domvvl 
    4141   USE timing          ! preformance summary 
    42    USE wrk_nemo        ! working arrays 
    4342 
    4443   IMPLICIT NONE 
     
    209208     INTEGER , DIMENSION(1)             :: ish   ! tmp array for mpp_sum 
    210209     INTEGER , DIMENSION(3)             :: ish2  !   " 
    211      REAL(wp), POINTER, DIMENSION(:)    :: zwork !   "   
    212      REAL(wp), POINTER, DIMENSION(:,:,:):: zsum  !   " 
     210     REAL(wp), DIMENSION(itotal)    :: zwork !   "   
     211     REAL(wp), DIMENSION(nb_sec_max,nb_type_class,nb_class_max):: zsum  !   " 
    213212     !!---------------------------------------------------------------------     
    214213     ! 
     
    217216     IF( lk_mpp )THEN 
    218217        itotal = nb_sec_max*nb_type_class*nb_class_max 
    219         CALL wrk_alloc( itotal                                , zwork )  
    220         CALL wrk_alloc( nb_sec_max,nb_type_class,nb_class_max , zsum  ) 
    221218     ENDIF     
    222219  
     
    289286     IF( lk_mpp )THEN 
    290287        itotal = nb_sec_max*nb_type_class*nb_class_max 
    291         CALL wrk_dealloc( itotal                                , zwork )  
    292         CALL wrk_dealloc( nb_sec_max,nb_type_class,nb_class_max , zsum  ) 
    293288     ENDIF     
    294289 
     
    318313     TYPE(POINT_SECTION),DIMENSION(nb_point_max)  ::coordtemp !contains listpoints coordinates  
    319314                                                              !read in the file 
    320      INTEGER, POINTER, DIMENSION(:) :: directemp              !contains listpoints directions 
     315     INTEGER, DIMENSION(nb_point_max) :: directemp              !contains listpoints directions 
    321316                                                              !read in the files 
    322317     LOGICAL :: llbon                                       ,&!local logical 
    323318                lldebug                                       !debug the section 
    324319     !!------------------------------------------------------------------------------------- 
    325      CALL wrk_alloc( nb_point_max, directemp ) 
    326320 
    327321     !open input file 
     
    495489     nb_sec = jsec-1   !number of section read in the file 
    496490 
    497      CALL wrk_dealloc( nb_point_max, directemp ) 
    498491     ! 
    499492  END SUBROUTINE readsec 
     
    521514                istart,iend      !first and last points selected in listpoint 
    522515     INTEGER :: jpoint           !loop on list points 
    523      INTEGER, POINTER, DIMENSION(:)   :: idirec !contains temporary sec%direction 
    524      INTEGER, POINTER, DIMENSION(:,:) :: icoord !contains temporary sec%listpoint 
     516     INTEGER, DIMENSION(nb_point_max)   :: idirec !contains temporary sec%direction 
     517     INTEGER, DIMENSION(2,nb_point_max) :: icoord !contains temporary sec%listpoint 
    525518     !---------------------------------------------------------------------------- 
    526      CALL wrk_alloc(    nb_point_max, idirec ) 
    527      CALL wrk_alloc( 2, nb_point_max, icoord ) 
    528519 
    529520     IF( ld_debug )WRITE(numout,*)'      -------------------------' 
     
    575566     ENDIF 
    576567 
    577      CALL wrk_dealloc(    nb_point_max, idirec ) 
    578      CALL wrk_dealloc( 2, nb_point_max, icoord ) 
    579568  END SUBROUTINE removepoints 
    580569 
     
    10191008     REAL(wp)              :: zslope             ! section's slope coeff 
    10201009     ! 
    1021      REAL(wp), POINTER, DIMENSION(:):: zsumclasses ! 1D workspace  
     1010     REAL(wp), DIMENSION(nb_type_class):: zsumclasses ! 1D workspace  
    10221011     !!-------------------------------------------------------------  
    1023      CALL wrk_alloc(nb_type_class , zsumclasses )   
    10241012 
    10251013     zsumclasses(:)=0._wp 
     
    11331121119   FORMAT(I8,1X,I8,1X,I4,1X,A30,1X,f9.2,1X,I4,3X,A8,1X,2F12.4,5X,3E15.6) 
    11341122 
    1135       CALL wrk_dealloc(nb_type_class , zsumclasses )   
    11361123      ! 
    11371124   END SUBROUTINE dia_dct_wri 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90

    r7646 r7910  
    2222   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2323   USE timing          ! preformance summary 
    24    USE wrk_nemo        ! working arrays 
    2524 
    2625   IMPLICIT NONE 
     
    226225      REAL(wp) :: ztime, ztime_ini, ztime_end 
    227226      REAL(wp) :: X1,X2 
    228       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ana_amp 
    229       !!-------------------------------------------------------------------- 
    230       CALL wrk_alloc( jpi , jpj , jpmax_harmo , 2 , ana_amp ) 
     227      REAL(wp), DIMENSION(jpi,jpj,jpmax_harmo,2) :: ana_amp 
     228      !!-------------------------------------------------------------------- 
    231229 
    232230      IF(lwp) WRITE(numout,*) 
     
    366364 
    367365      CALL dia_wri_harm ! Write results in files 
    368       CALL wrk_dealloc( jpi , jpj , jpmax_harmo , 2 , ana_amp ) 
    369366      ! 
    370367   END SUBROUTINE dia_harm_end 
     
    427424      INTEGER                         :: ji_sd, jj_sd, ji1_sd, ji2_sd, jk1_sd, jk2_sd 
    428425      REAL(wp)                        :: zval1, zval2, zx1 
    429       REAL(wp), POINTER, DIMENSION(:) :: ztmpx, zcol1, zcol2 
    430       INTEGER , POINTER, DIMENSION(:) :: ipos2, ipivot 
     426      REAL(wp), DIMENSION(jpincomax) :: ztmpx, zcol1, zcol2 
     427      INTEGER , DIMENSION(jpincomax) :: ipos2, ipivot 
    431428      !--------------------------------------------------------------------------------- 
    432       CALL wrk_alloc( jpincomax , ztmpx , zcol1 , zcol2 ) 
    433       CALL wrk_alloc( jpincomax , ipos2 , ipivot        ) 
    434429             
    435430      IF( init == 1 ) THEN 
     
    518513      END DO 
    519514 
    520       CALL wrk_dealloc( jpincomax , ztmpx , zcol1 , zcol2 ) 
    521       CALL wrk_dealloc( jpincomax , ipos2 , ipivot        ) 
    522515      ! 
    523516   END SUBROUTINE SUR_DETERMINE 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r7753 r7910  
    3131   USE lib_mpp         ! distributed memory computing library 
    3232   USE timing          ! preformance summary 
    33    USE wrk_nemo        ! work arrays 
    3433 
    3534   IMPLICIT NONE 
     
    8281      REAL(wp)   ::   z_wn_trd_t , z_wn_trd_s     !    -     - 
    8382      REAL(wp)   ::   z_ssh_hc , z_ssh_sc         !    -     - 
    84       REAL(wp), DIMENSION(:,:), POINTER ::   z2d0, z2d1 
     83      REAL(wp), DIMENSION(jpi,jpj) ::   z2d0, z2d1 
    8584      !!--------------------------------------------------------------------------- 
    8685      IF( nn_timing == 1 )   CALL timing_start('dia_hsb')       
    8786      ! 
    88       CALL wrk_alloc( jpi,jpj,   z2d0, z2d1 ) 
    8987      ! 
    9088      tsn(:,:,:,1) = tsn(:,:,:,1) * tmask(:,:,:) ; tsb(:,:,:,1) = tsb(:,:,:,1) * tmask(:,:,:) ; 
     
    228226      IF( lrst_oce )   CALL dia_hsb_rst( kt, 'WRITE' ) 
    229227      ! 
    230       CALL wrk_dealloc( jpi,jpj,   z2d0, z2d1 ) 
    231228      ! 
    232229      IF( nn_timing == 1 )   CALL timing_stop('dia_hsb') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DIA/diatmb.F90

    r7646 r7910  
    1212   USE in_out_manager  ! I/O units 
    1313   USE iom             ! I/0 library 
    14    USE wrk_nemo        ! working arrays 
    1514 
    1615 
     
    105104      !!-------------------------------------------------------------------- 
    106105      REAL(wp) ::   zmdi =1.e+20     ! land value 
    107       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwtmb    ! workspace  
     106      REAL(wp), DIMENSION(jpi,jpj,3) :: zwtmb    ! workspace  
    108107      !!-------------------------------------------------------------------- 
    109108      ! 
    110109      IF (ln_diatmb) THEN 
    111          CALL wrk_alloc( jpi,jpj,3   , zwtmb ) 
    112110         CALL dia_calctmb(  tsn(:,:,:,jp_tem),zwtmb ) 
    113111         !ssh already output but here we output it masked 
     
    134132         CALL iom_put( "bot_v" , zwtmb(:,:,3) )    ! tmb  V Velocity 
    135133!Called in  dynspg_ts.F90       CALL iom_put( "baro_v" , vn_b )    ! Barotropic  V Velocity 
    136          CALL wrk_dealloc( jpi,jpj,3   , zwtmb ) 
    137134      ELSE 
    138135         CALL ctl_warn('dia_tmb: tmb diagnostic is set to false you should not have seen this') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r7753 r7910  
    6060   USE diurnal_bulk    ! diurnal warm layer 
    6161   USE cool_skin       ! Cool skin 
    62    USE wrk_nemo        ! working array 
    6362 
    6463   IMPLICIT NONE 
     
    127126      REAL(wp)                     ::   zztmp, zztmpx, zztmpy   !  
    128127      !! 
    129       REAL(wp), POINTER, DIMENSION(:,:)   :: z2d      ! 2D workspace 
    130       REAL(wp), POINTER, DIMENSION(:,:,:) :: z3d      ! 3D workspace 
     128      REAL(wp), DIMENSION(jpi,jpj)   :: z2d      ! 2D workspace 
     129      REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d      ! 3D workspace 
    131130      !!---------------------------------------------------------------------- 
    132131      !  
    133132      IF( nn_timing == 1 )   CALL timing_start('dia_wri') 
    134133      !  
    135       CALL wrk_alloc( jpi , jpj      , z2d ) 
    136       CALL wrk_alloc( jpi , jpj, jpk , z3d ) 
    137134      ! 
    138135      ! Output the initial state and forcings 
     
    408405      CALL iom_put( "bn2", rn2 )  !Brunt-Vaisala buoyancy frequency (N^2) 
    409406      ! 
    410       CALL wrk_dealloc( jpi , jpj      , z2d ) 
    411       CALL wrk_dealloc( jpi , jpj, jpk , z3d ) 
    412407      ! 
    413408      ! If we want tmb values  
     
    452447      REAL(wp) ::   zsto, zout, zmax, zjulian                ! local scalars 
    453448      ! 
    454       REAL(wp), POINTER, DIMENSION(:,:)   :: zw2d       ! 2D workspace 
    455       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d       ! 3D workspace 
     449      REAL(wp), DIMENSION(jpi,jpj)   :: zw2d       ! 2D workspace 
     450      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d       ! 3D workspace 
    456451      !!---------------------------------------------------------------------- 
    457452      !  
    458453      IF( nn_timing == 1 )   CALL timing_start('dia_wri') 
    459454      ! 
    460                              CALL wrk_alloc( jpi,jpj      , zw2d ) 
    461       IF( .NOT.ln_linssh )   CALL wrk_alloc( jpi,jpj,jpk  , zw3d ) 
    462455      ! 
    463456      ! Output the initial state and forcings 
     
    894887      ENDIF 
    895888      ! 
    896                              CALL wrk_dealloc( jpi , jpj        , zw2d ) 
    897       IF( .NOT.ln_linssh )   CALL wrk_dealloc( jpi , jpj , jpk  , zw3d ) 
    898889      ! 
    899890      IF( nn_timing == 1 )   CALL timing_stop('dia_wri') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90

    r7753 r7910  
    3030   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3131   USE lib_mpp        ! Massively Parallel Processing library 
    32    USE wrk_nemo       ! Memory allocation 
    3332   USE timing         ! Timing 
    3433 
     
    9291      INTEGER  ::   iktop, ikbot   !   -       - 
    9392      INTEGER  ::   ios, inum 
    94       REAL(wp), POINTER, DIMENSION(:,:) ::   zwf   ! 2D workspace 
     93      REAL(wp), DIMENSION(jpi,jpj) ::   zwf   ! 2D workspace 
    9594      !! 
    9695      NAMELIST/namlbc/ rn_shlat, ln_vorlat 
     
    248247      IF( rn_shlat /= 0 ) THEN      ! Not free-slip lateral boundary condition 
    249248         ! 
    250          CALL wrk_alloc( jpi,jpj,   zwf ) 
    251249         ! 
    252250         DO jk = 1, jpk 
     
    278276         END DO 
    279277         ! 
    280          CALL wrk_dealloc( jpi,jpj,   zwf ) 
    281278         ! 
    282279         CALL lbc_lnk( fmask, 'F', 1._wp )      ! Lateral boundary conditions on fmask 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domngb.F90

    r7646 r7910  
    1313   USE in_out_manager ! I/O manager 
    1414   USE lib_mpp        ! for mppsum 
    15    USE wrk_nemo       ! Memory allocation 
    1615   USE timing         ! Timing 
    1716 
     
    4544      INTEGER , DIMENSION(2) ::   iloc 
    4645      REAL(wp)               ::   zlon, zmini 
    47       REAL(wp), POINTER, DIMENSION(:,:) ::  zglam, zgphi, zmask, zdist 
     46      REAL(wp), DIMENSION(jpi,jpj) ::  zglam, zgphi, zmask, zdist 
    4847      !!-------------------------------------------------------------------- 
    4948      ! 
    5049      IF( nn_timing == 1 )  CALL timing_start('dom_ngb') 
    5150      ! 
    52       CALL wrk_alloc( jpi,jpj,   zglam, zgphi, zmask, zdist ) 
    5351      ! 
    5452      zmask(:,:) = 0._wp 
     
    7977      ENDIF 
    8078      ! 
    81       CALL wrk_dealloc( jpi,jpj,   zglam, zgphi, zmask, zdist ) 
    8279      ! 
    8380      IF( nn_timing == 1 )  CALL timing_stop('dom_ngb') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r7753 r7910  
    3131   USE lib_mpp         ! distributed memory computing library 
    3232   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    33    USE wrk_nemo        ! Memory allocation 
    3433   USE timing          ! Timing 
    3534 
     
    276275      REAL(wp)               ::   z2dt, z_tmin, z_tmax  ! local scalars 
    277276      LOGICAL                ::   ll_do_bclinic         ! local logical 
    278       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ze3t 
    279       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zht, z_scale, zwu, zwv, zhdiv 
     277      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3t 
     278      REAL(wp), DIMENSION(jpi,jpj) ::   zht, z_scale, zwu, zwv, zhdiv 
    280279      !!---------------------------------------------------------------------- 
    281280      ! 
     
    284283      IF( nn_timing == 1 )   CALL timing_start('dom_vvl_sf_nxt') 
    285284      ! 
    286       CALL wrk_alloc( jpi,jpj,zht,   z_scale, zwu, zwv, zhdiv ) 
    287       CALL wrk_alloc( jpi,jpj,jpk,   ze3t ) 
    288285 
    289286      IF( kt == nit000 ) THEN 
     
    543540      r1_hv_a(:,:) = ssvmask(:,:) / ( hv_a(:,:) + 1._wp - ssvmask(:,:) ) 
    544541      ! 
    545       CALL wrk_dealloc( jpi,jpj,       zht, z_scale, zwu, zwv, zhdiv ) 
    546       CALL wrk_dealloc( jpi,jpj,jpk,   ze3t ) 
    547542      ! 
    548543      IF( nn_timing == 1 )  CALL timing_stop('dom_vvl_sf_nxt') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domwri.F90

    r7646 r7910  
    2424   USE lbclnk          ! lateral boundary conditions - mpp exchanges 
    2525   USE lib_mpp         ! MPP library 
    26    USE wrk_nemo        ! Memory allocation 
    2726   USE timing          ! Timing 
    2827 
     
    7574      INTEGER           ::   izco, izps, isco, icav 
    7675      !                                
    77       REAL(wp), POINTER, DIMENSION(:,:)   ::   zprt, zprw     ! 2D workspace 
    78       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdepu, zdepv   ! 3D workspace 
     76      REAL(wp), DIMENSION(jpi,jpj)   ::   zprt, zprw     ! 2D workspace 
     77      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdepu, zdepv   ! 3D workspace 
    7978      !!---------------------------------------------------------------------- 
    8079      ! 
    8180      IF( nn_timing == 1 )  CALL timing_start('dom_wri') 
    8281      ! 
    83       CALL wrk_alloc( jpi,jpj,       zprt , zprw  ) 
    84       CALL wrk_alloc( jpi,jpj,jpk,   zdepu, zdepv ) 
    8582      ! 
    8683      IF(lwp) WRITE(numout,*) 
     
    206203      !                                     ! ============================ 
    207204      ! 
    208       CALL wrk_dealloc( jpi, jpj, zprt, zprw ) 
    209       CALL wrk_dealloc( jpi, jpj, jpk, zdepu, zdepv ) 
    210205      ! 
    211206      IF( nn_timing == 1 )  CALL timing_stop('dom_wri') 
     
    229224      INTEGER  ::  ji       ! dummy loop indices 
    230225      LOGICAL, DIMENSION(SIZE(puniq,1),SIZE(puniq,2),1) ::  lldbl  ! store whether each point is unique or not 
    231       REAL(wp), POINTER, DIMENSION(:,:) :: ztstref 
     226      REAL(wp), DIMENSION(jpi,jpj) :: ztstref 
    232227      !!---------------------------------------------------------------------- 
    233228      ! 
    234229      IF( nn_timing == 1 )  CALL timing_start('dom_uniq') 
    235230      ! 
    236       CALL wrk_alloc( jpi, jpj, ztstref ) 
    237231      ! 
    238232      ! build an array with different values for each element  
     
    250244      puniq(nldi:nlei,nldj:nlej) = REAL( COUNT( lldbl(nldi:nlei,nldj:nlej,:), dim = 3 ) , wp ) 
    251245      ! 
    252       CALL wrk_dealloc( jpi, jpj, ztstref ) 
    253246      ! 
    254247      IF( nn_timing == 1 )  CALL timing_stop('dom_uniq') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r7753 r7910  
    3636   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3737   USE lib_mpp        ! distributed memory computing library 
    38    USE wrk_nemo       ! Memory allocation 
    3938   USE timing         ! Timing 
    4039 
     
    284283      ! 
    285284      INTEGER ::   ji, jj   ! dummy loop indices 
    286       REAL(wp), POINTER, DIMENSION(:,:) ::  zk 
     285      REAL(wp), DIMENSION(jpi,jpj) ::  zk 
    287286      !!---------------------------------------------------------------------- 
    288287      ! 
    289288      IF( nn_timing == 1 )  CALL timing_start('zgr_top_bot') 
    290289      ! 
    291       CALL wrk_alloc( jpi,jpj,   zk ) 
    292290      ! 
    293291      IF(lwp) WRITE(numout,*) 
     
    319317      zk(:,:) = REAL( mbkv(:,:), wp )   ;   CALL lbc_lnk( zk, 'V', 1. )   ;   mbkv(:,:) = MAX( INT( zk(:,:) ), 1 ) 
    320318      ! 
    321       CALL wrk_dealloc( jpi,jpj,   zk ) 
    322319      ! 
    323320      IF( nn_timing == 1 )  CALL timing_stop('zgr_top_bot') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90

    r7753 r7910  
    2121   USE phycst          ! physical constants 
    2222   USE lib_mpp         ! MPP library 
    23    USE wrk_nemo        ! Memory allocation 
    2423   USE timing          ! Timing 
    2524 
     
    146145      INTEGER ::   ik, il0, il1, ii0, ii1, ij0, ij1   ! local integers 
    147146      REAL(wp)::   zl, zi 
    148       REAL(wp), POINTER, DIMENSION(:) ::  ztp, zsp   ! 1D workspace 
     147      REAL(wp), DIMENSION(jpk) ::  ztp, zsp   ! 1D workspace 
    149148      !!---------------------------------------------------------------------- 
    150149      ! 
     
    186185      IF( ln_sco ) THEN                   !==   s- or mixed s-zps-coordinate   ==! 
    187186         ! 
    188          CALL wrk_alloc( jpk, ztp, zsp ) 
    189187         ! 
    190188         IF( kt == nit000 .AND. lwp )THEN 
     
    222220         END DO 
    223221         !  
    224          CALL wrk_dealloc( jpk, ztp, zsp ) 
    225222         !  
    226223      ELSE                                !==   z- or zps- coordinate   ==! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/iscplhsb.F90

    r7646 r7910  
    2121   USE lib_mpp         ! MPP library 
    2222   USE lib_fortran     ! MPP library 
    23    USE wrk_nemo        ! Memory allocation 
    2423   USE lbclnk          ! 
    2524   USE domngb          ! 
     
    6564      !! 
    6665      REAL(wp):: zde3t, zdtem, zdsal 
    67       REAL(wp), DIMENSION(:,:), POINTER :: zdssh 
     66      REAL(wp), DIMENSION(jpi,jpj) :: zdssh 
    6867      !! 
    6968      REAL(wp), DIMENSION(:), ALLOCATABLE :: zlon, zlat 
     
    7271      INTEGER :: jpts, npts 
    7372 
    74       CALL wrk_alloc(jpi,jpj, zdssh ) 
    7573 
    7674      ! get imbalance (volume heat and salt) 
     
    289287 
    290288      ! deallocate variables 
    291       CALL wrk_dealloc(jpi,jpj, zdssh )  
    292289 
    293290   END SUBROUTINE iscpl_cons 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/iscplrst.F90

    r7646 r7910  
    2121   USE lib_mpp         ! MPP library 
    2222   USE lib_fortran     ! MPP library 
    23    USE wrk_nemo        ! Memory allocation 
    2423   USE lbclnk          ! communication 
    2524   USE iscplini        ! ice sheet coupling: initialisation 
     
    5049      !!---------------------------------------------------------------------- 
    5150      INTEGER  ::   inum0 
    52       REAL(wp), DIMENSION(:,:  ), POINTER ::   zsmask_b 
    53       REAL(wp), DIMENSION(:,:,:), POINTER ::   ztmask_b, zumask_b, zvmask_b 
    54       REAL(wp), DIMENSION(:,:,:), POINTER ::   ze3t_b  , ze3u_b  , ze3v_b   
    55       REAL(wp), DIMENSION(:,:,:), POINTER ::   zdepw_b 
     51      REAL(wp), DIMENSION(jpi,jpj) ::   zsmask_b 
     52      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztmask_b, zumask_b, zvmask_b 
     53      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3t_b  , ze3u_b  , ze3v_b   
     54      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdepw_b 
    5655      CHARACTER(20) :: cfile 
    5756      !!---------------------------------------------------------------------- 
    5857 
    59       CALL wrk_alloc(jpi,jpj,jpk,   ztmask_b, zumask_b, zvmask_b) ! mask before 
    60       CALL wrk_alloc(jpi,jpj,jpk,   ze3t_b  , ze3u_b  , ze3v_b  ) ! e3   before 
    61       CALL wrk_alloc(jpi,jpj,jpk,   zdepw_b ) 
    62       CALL wrk_alloc(jpi,jpj,       zsmask_b                    ) 
    6358 
    6459 
     
    9893      END IF 
    9994 
    100       CALL wrk_dealloc(jpi,jpj,jpk,   ztmask_b,zumask_b,zvmask_b )   
    101       CALL wrk_dealloc(jpi,jpj,jpk,   ze3t_b  ,ze3u_b  ,ze3v_b   )   
    102       CALL wrk_dealloc(jpi,jpj,jpk,   zdepw_b                    ) 
    103       CALL wrk_dealloc(jpi,jpj,       zsmask_b                   ) 
    10495 
    10596      !! next step is an euler time step 
     
    150141      REAL(wp):: zdz, zdzm1, zdzp1 
    151142      !! 
    152       REAL(wp), DIMENSION(:,:    ), POINTER :: zdmask , zdsmask, zvcorr, zucorr, zde3t 
    153       REAL(wp), DIMENSION(:,:    ), POINTER :: zbub   , zbvb   , zbun  , zbvn 
    154       REAL(wp), DIMENSION(:,:    ), POINTER :: zssh0  , zssh1, zhu1, zhv1 
    155       REAL(wp), DIMENSION(:,:    ), POINTER :: zsmask0, zsmask1 
    156       REAL(wp), DIMENSION(:,:,:  ), POINTER :: ztmask0, ztmask1, ztrp 
    157       REAL(wp), DIMENSION(:,:,:  ), POINTER :: zwmaskn, zwmaskb, ztmp3d 
    158       REAL(wp), DIMENSION(:,:,:,:), POINTER :: zts0 
     143      REAL(wp), DIMENSION(jpi,jpj) :: zdmask , zdsmask, zvcorr, zucorr, zde3t 
     144      REAL(wp), DIMENSION(jpi,jpj) :: zbub   , zbvb   , zbun  , zbvn 
     145      REAL(wp), DIMENSION(jpi,jpj) :: zssh0  , zssh1, zhu1, zhv1 
     146      REAL(wp), DIMENSION(jpi,jpj) :: zsmask0, zsmask1 
     147      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztmask0, ztmask1, ztrp 
     148      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwmaskn, zwmaskb, ztmp3d 
     149      REAL(wp), DIMENSION(jpi,jpj,jpk,2) :: zts0 
    159150      !!---------------------------------------------------------------------- 
    160151 
    161152      !! allocate variables 
    162       CALL wrk_alloc(jpi,jpj,jpk,2, zts0                                   ) 
    163       CALL wrk_alloc(jpi,jpj,jpk,   ztmask0, ztmask1 , ztrp, ztmp3d        )  
    164       CALL wrk_alloc(jpi,jpj,jpk,   zwmaskn, zwmaskb                       )  
    165       CALL wrk_alloc(jpi,jpj,       zsmask0, zsmask1                       )  
    166       CALL wrk_alloc(jpi,jpj,       zdmask , zdsmask, zvcorr, zucorr, zde3t)  
    167       CALL wrk_alloc(jpi,jpj,       zbub   , zbvb    , zbun , zbvn         )  
    168       CALL wrk_alloc(jpi,jpj,       zssh0  , zssh1, zhu1, zhv1             )  
    169153 
    170154      !! mask value to be sure 
     
    430414      !  
    431415      ! deallocation tmp arrays 
    432       CALL wrk_dealloc(jpi,jpj,jpk,2, zts0                                   ) 
    433       CALL wrk_dealloc(jpi,jpj,jpk,   ztmask0, ztmask1 , ztrp                )  
    434       CALL wrk_dealloc(jpi,jpj,jpk,   zwmaskn, zwmaskb , ztmp3d              )  
    435       CALL wrk_dealloc(jpi,jpj,       zsmask0, zsmask1                       )  
    436       CALL wrk_dealloc(jpi,jpj,       zdmask , zdsmask, zvcorr, zucorr, zde3t)  
    437       CALL wrk_dealloc(jpi,jpj,       zbub   , zbvb    , zbun  , zbvn        )  
    438       CALL wrk_dealloc(jpi,jpj,       zssh0  , zssh1  , zhu1 , zhv1          )  
    439416      ! 
    440417   END SUBROUTINE iscpl_rst_interpol 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r7753 r7910  
    6060      !!---------------------------------------------------------------------- 
    6161      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    62       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zuvd    ! U & V data workspace 
     62      REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   zuvd    ! U & V data workspace 
    6363      !!---------------------------------------------------------------------- 
    6464      ! 
     
    121121!!gm to be moved in usrdef of C1D case 
    122122!         IF ( ln_uvd_init .AND. lk_c1d ) THEN ! read 3D U and V data at nit000 
    123 !            CALL wrk_alloc( jpi,jpj,jpk,2,   zuvd ) 
    124123!            CALL dta_uvd( nit000, zuvd ) 
    125124!            ub(:,:,:) = zuvd(:,:,:,1) ;  un(:,:,:) = ub(:,:,:) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_cen2.F90

    r6750 r7910  
    2020   USE lib_mpp        ! MPP library 
    2121   USE prtctl         ! Print control 
    22    USE wrk_nemo       ! Memory Allocation 
    2322   USE timing         ! Timing 
    2423 
     
    5150      ! 
    5251      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    53       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw 
    54       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zfu, zfv 
     52      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw 
     53      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zfu, zfv 
    5554      !!---------------------------------------------------------------------- 
    5655      ! 
    5756      IF( nn_timing == 1 )  CALL timing_start('dyn_adv_cen2') 
    5857      ! 
    59       CALL wrk_alloc( jpi,jpj,jpk,   zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    6058      ! 
    6159      IF( kt == nit000 .AND. lwp ) THEN 
     
    148146         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    149147      ! 
    150       CALL wrk_dealloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    151148      ! 
    152149      IF( nn_timing == 1 )  CALL timing_stop('dyn_adv_cen2') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90

    r6750 r7910  
    2323   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2424   USE lib_mpp        ! MPP library 
    25    USE wrk_nemo       ! Memory Allocation 
    2625   USE timing         ! Timing 
    2726 
     
    7473      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    7574      REAL(wp) ::   zui, zvj, zfuj, zfvi, zl_u, zl_v   ! local scalars 
    76       REAL(wp), POINTER, DIMENSION(:,:,:  ) ::  zfu, zfv 
    77       REAL(wp), POINTER, DIMENSION(:,:,:  ) ::  zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw 
    78       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zlu_uu, zlv_vv, zlu_uv, zlv_vu 
     75      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zfu, zfv 
     76      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw 
     77      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zlu_uu, zlv_vv, zlu_uv, zlv_vu 
    7978      !!---------------------------------------------------------------------- 
    8079      ! 
    8180      IF( nn_timing == 1 )  CALL timing_start('dyn_adv_ubs') 
    8281      ! 
    83       CALL wrk_alloc( jpi,jpj,jpk,        zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    84       CALL wrk_alloc( jpi,jpj,jpk,jpts,   zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
    8582      ! 
    8683      IF( kt == nit000 ) THEN 
     
    241238         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    242239      ! 
    243       CALL wrk_dealloc( jpi,jpj,jpk,        zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    244       CALL wrk_dealloc( jpi,jpj,jpk,jpts,   zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
    245240      ! 
    246241      IF( nn_timing == 1 )  CALL timing_stop('dyn_adv_ubs') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynbfr.F90

    r7753 r7910  
    2121   USE prtctl         ! Print control 
    2222   USE timing         ! Timing 
    23    USE wrk_nemo       ! Memory Allocation 
    2423 
    2524   IMPLICIT NONE 
     
    5049      INTEGER  ::   ikbu, ikbv   ! local integers 
    5150      REAL(wp) ::   zm1_2dt      ! local scalar 
    52       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     51      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
    5352      !!--------------------------------------------------------------------- 
    5453      ! 
     
    6463 
    6564        IF( l_trddyn ) THEN      ! trends: store the input trends 
    66            CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    6765           ztrdu(:,:,:) = ua(:,:,:) 
    6866           ztrdv(:,:,:) = va(:,:,:) 
     
    102100           ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    103101           CALL trd_dyn( ztrdu(:,:,:), ztrdv(:,:,:), jpdyn_bfr, kt ) 
    104            CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    105102        ENDIF 
    106103        !                                          ! print mean trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r7761 r7910  
    4444   USE lib_mpp         ! MPP library 
    4545   USE eosbn2          ! compute density 
    46    USE wrk_nemo        ! Memory Allocation 
    4746   USE timing          ! Timing 
    4847   USE iom 
     
    8483      !!---------------------------------------------------------------------- 
    8584      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    86       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
    8786      !!---------------------------------------------------------------------- 
    8887      ! 
     
    9089      ! 
    9190      IF( l_trddyn ) THEN                    ! Temporary saving of ua and va trends (l_trddyn) 
    92          CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    9391         ztrdu(:,:,:) = ua(:,:,:) 
    9492         ztrdv(:,:,:) = va(:,:,:) 
     
    108106         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    109107         CALL trd_dyn( ztrdu, ztrdv, jpdyn_hpg, kt ) 
    110          CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    111108      ENDIF 
    112109      ! 
     
    134131      INTEGER  ::   ji, jj, jk, ikt    ! dummy loop indices      ISF 
    135132      REAL(wp) ::   znad 
    136       REAL(wp), POINTER, DIMENSION(:,:,:)   ::  ztstop, zrhd ! hypothesys on isf density 
    137       REAL(wp), POINTER, DIMENSION(:,:)     ::  zrhdtop_isf  ! density at bottom of ISF 
    138       REAL(wp), POINTER, DIMENSION(:,:)     ::  ziceload     ! density at bottom of ISF 
     133      REAL(wp), DIMENSION(jpi,jpj,2)   ::  ztstop       ! hypothesys on isf density 
     134      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::  zrhd         ! hypothesys on isf density 
     135      REAL(wp), DIMENSION(jpi,jpj)     ::  zrhdtop_isf  ! density at bottom of ISF 
     136      REAL(wp), DIMENSION(jpi,jpj)     ::  ziceload     ! density at bottom of ISF 
    139137      !! 
    140138      NAMELIST/namdyn_hpg/ ln_hpg_zco, ln_hpg_zps, ln_hpg_sco,     & 
     
    200198      IF ( .NOT. ln_isfcav ) riceload(:,:)=0.0 
    201199      IF (       ln_isfcav ) THEN 
    202          CALL wrk_alloc( jpi,jpj, 2,  ztstop)  
    203          CALL wrk_alloc( jpi,jpj,jpk, zrhd  ) 
    204          CALL wrk_alloc( jpi,jpj,     zrhdtop_isf, ziceload)  
    205200         ! 
    206201         IF(lwp) WRITE(numout,*) 
     
    240235         riceload(:,:)=ziceload(:,:)  ! need to be saved for diaar5 
    241236 
    242          CALL wrk_dealloc( jpi,jpj, 2,  ztstop)  
    243          CALL wrk_dealloc( jpi,jpj,jpk, zrhd  ) 
    244          CALL wrk_dealloc( jpi,jpj,     zrhdtop_isf, ziceload)  
    245237      END IF 
    246238      ! 
     
    268260      INTEGER  ::   ji, jj, jk       ! dummy loop indices 
    269261      REAL(wp) ::   zcoef0, zcoef1   ! temporary scalars 
    270       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj 
    271       !!---------------------------------------------------------------------- 
    272       ! 
    273       CALL wrk_alloc( jpi,jpj,jpk,   zhpi, zhpj ) 
     262      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zhpi, zhpj 
     263      !!---------------------------------------------------------------------- 
     264      ! 
    274265      ! 
    275266      IF( kt == nit000 ) THEN 
     
    315306      END DO 
    316307      ! 
    317       CALL wrk_dealloc( jpi,jpj,jpk,   zhpi, zhpj ) 
    318308      ! 
    319309   END SUBROUTINE hpg_zco 
     
    333323      INTEGER  ::   iku, ikv                         ! temporary integers 
    334324      REAL(wp) ::   zcoef0, zcoef1, zcoef2, zcoef3   ! temporary scalars 
    335       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj 
    336       !!---------------------------------------------------------------------- 
    337       ! 
    338       CALL wrk_alloc( jpi,jpj,jpk,   zhpi, zhpj ) 
     325      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zhpi, zhpj 
     326      !!---------------------------------------------------------------------- 
     327      ! 
    339328      ! 
    340329      IF( kt == nit000 ) THEN 
     
    405394      END DO 
    406395      ! 
    407       CALL wrk_dealloc( jpi,jpj,jpk,   zhpi, zhpj ) 
    408396      ! 
    409397   END SUBROUTINE hpg_zps 
     
    433421      REAL(wp) ::   zcoef0, zuap, zvap, znad, ztmp       ! temporary scalars 
    434422      LOGICAL  ::   ll_tmp1, ll_tmp2                     ! local logical variables 
    435       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj 
    436       REAL(wp), POINTER, DIMENSION(:,:)   ::  zcpx, zcpy !W/D pressure filter 
    437       !!---------------------------------------------------------------------- 
    438       ! 
    439       CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 
    440       IF( ln_wd ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy ) 
     423      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zhpi, zhpj 
     424      REAL(wp), DIMENSION(jpi,jpj)   ::  zcpx, zcpy !W/D pressure filter 
     425      !!---------------------------------------------------------------------- 
     426      ! 
    441427      ! 
    442428      IF( kt == nit000 ) THEN 
     
    554540      END DO 
    555541      ! 
    556       CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 
    557       IF( ln_wd ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy ) 
    558542      ! 
    559543   END SUBROUTINE hpg_sco 
     
    583567      INTEGER  ::   ji, jj, jk, ikt, iktp1i, iktp1j   ! dummy loop indices 
    584568      REAL(wp) ::   zcoef0, zuap, zvap, znad          ! temporary scalars 
    585       REAL(wp), POINTER, DIMENSION(:,:,:)   ::  zhpi, zhpj 
    586       REAL(wp), POINTER, DIMENSION(:,:,:)   ::  ztstop 
    587       REAL(wp), POINTER, DIMENSION(:,:)     ::  zrhdtop_oce 
    588       !!---------------------------------------------------------------------- 
    589       ! 
    590       CALL wrk_alloc( jpi,jpj,  2, ztstop)  
    591       CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj) 
    592       CALL wrk_alloc( jpi,jpj,     zrhdtop_oce ) 
     569      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::  zhpi, zhpj 
     570      REAL(wp), DIMENSION(jpi,jpj,2)   ::  ztstop 
     571      REAL(wp), DIMENSION(jpi,jpj)     ::  zrhdtop_oce 
     572      !!---------------------------------------------------------------------- 
     573      ! 
    593574      ! 
    594575      ! Local constant initialization 
     
    668649      END DO 
    669650     ! 
    670       CALL wrk_dealloc( jpi,jpj,2  , ztstop) 
    671       CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj) 
    672       CALL wrk_dealloc( jpi,jpj    , zrhdtop_oce ) 
    673651      ! 
    674652   END SUBROUTINE hpg_isf 
     
    690668      REAL(wp) ::   z1_12, cffv, cffy   !    "         " 
    691669      LOGICAL  ::   ll_tmp1, ll_tmp2    ! local logical variables 
    692       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj 
    693       REAL(wp), POINTER, DIMENSION(:,:,:) ::  dzx, dzy, dzz, dzu, dzv, dzw 
    694       REAL(wp), POINTER, DIMENSION(:,:,:) ::  drhox, drhoy, drhoz, drhou, drhov, drhow 
    695       REAL(wp), POINTER, DIMENSION(:,:,:) ::  rho_i, rho_j, rho_k 
    696       REAL(wp), POINTER, DIMENSION(:,:)   ::  zcpx, zcpy    !W/D pressure filter 
    697       !!---------------------------------------------------------------------- 
    698       ! 
    699       CALL wrk_alloc( jpi, jpj, jpk, dzx  , dzy  , dzz  , dzu  , dzv  , dzw   ) 
    700       CALL wrk_alloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow ) 
    701       CALL wrk_alloc( jpi, jpj, jpk, rho_i, rho_j, rho_k,  zhpi,  zhpj        ) 
    702       IF( ln_wd ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy ) 
     670      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zhpi, zhpj 
     671      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  dzx, dzy, dzz, dzu, dzv, dzw 
     672      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  drhox, drhoy, drhoz, drhou, drhov, drhow 
     673      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  rho_i, rho_j, rho_k 
     674      REAL(wp), DIMENSION(jpi,jpj)   ::  zcpx, zcpy    !W/D pressure filter 
     675      !!---------------------------------------------------------------------- 
     676      ! 
    703677      ! 
    704678      ! 
     
    949923      END DO 
    950924      ! 
    951       CALL wrk_dealloc( jpi, jpj, jpk, dzx  , dzy  , dzz  , dzu  , dzv  , dzw   ) 
    952       CALL wrk_dealloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow ) 
    953       CALL wrk_dealloc( jpi, jpj, jpk, rho_i, rho_j, rho_k,  zhpi,  zhpj        ) 
    954       IF( ln_wd ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy ) 
    955925      ! 
    956926   END SUBROUTINE hpg_djc 
     
    980950      REAL(wp) :: zrhdt1 
    981951      REAL(wp) :: zdpdx1, zdpdx2, zdpdy1, zdpdy2 
    982       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdept, zrhh 
    983       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp 
    984       REAL(wp), POINTER, DIMENSION(:,:)   ::   zsshu_n, zsshv_n 
    985       REAL(wp), POINTER, DIMENSION(:,:)   ::  zcpx, zcpy    !W/D pressure filter 
    986       !!---------------------------------------------------------------------- 
    987       ! 
    988       CALL wrk_alloc( jpi,jpj,jpk,   zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp ) 
    989       CALL wrk_alloc( jpi,jpj,jpk,   zdept, zrhh ) 
    990       CALL wrk_alloc( jpi,jpj,       zsshu_n, zsshv_n ) 
    991       IF( ln_wd ) CALL wrk_alloc( jpi,jpj, zcpx, zcpy ) 
     952      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdept, zrhh 
     953      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp 
     954      REAL(wp), DIMENSION(jpi,jpj)   ::   zsshu_n, zsshv_n 
     955      REAL(wp), DIMENSION(jpi,jpj)   ::  zcpx, zcpy    !W/D pressure filter 
     956      !!---------------------------------------------------------------------- 
     957      ! 
    992958      ! 
    993959      IF( kt == nit000 ) THEN 
     
    12981264      END DO 
    12991265      ! 
    1300       CALL wrk_dealloc( jpi,jpj,jpk,   zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp ) 
    1301       CALL wrk_dealloc( jpi,jpj,jpk,   zdept, zrhh ) 
    1302       CALL wrk_dealloc( jpi,jpj,       zsshu_n, zsshv_n ) 
    1303       IF( ln_wd ) CALL wrk_dealloc( jpi,jpj, zcpx, zcpy ) 
    13041266      ! 
    13051267   END SUBROUTINE hpg_prj 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90

    r7753 r7910  
    2222   USE lib_mpp         ! MPP library 
    2323   USE prtctl          ! Print control 
    24    USE wrk_nemo        ! Memory Allocation 
    2524   USE timing          ! Timing 
    2625   USE bdy_oce         ! ocean open boundary conditions 
     
    7776      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    7877      REAL(wp) ::   zu, zv       ! temporary scalars 
    79       REAL(wp), POINTER, DIMENSION(:,:,:) :: zhke 
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv  
     78      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zhke 
     79      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrdu, ztrdv  
    8180      INTEGER  ::   jb                 ! dummy loop indices 
    8281      INTEGER  ::   ii, ij, igrd, ib_bdy   ! local integers 
     
    8685      IF( nn_timing == 1 )   CALL timing_start('dyn_keg') 
    8786      ! 
    88       CALL wrk_alloc( jpi,jpj,jpk,   zhke ) 
    8987      ! 
    9088      IF( kt == nit000 ) THEN 
     
    9593 
    9694      IF( l_trddyn ) THEN           ! Save ua and va trends 
    97          CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    9895         ztrdu(:,:,:) = ua(:,:,:)  
    9996         ztrdv(:,:,:) = va(:,:,:)  
     
    187184         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    188185         CALL trd_dyn( ztrdu, ztrdv, jpdyn_keg, kt ) 
    189          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    190186      ENDIF 
    191187      ! 
     
    193189         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    194190      ! 
    195       CALL wrk_dealloc( jpi,jpj,jpk,   zhke ) 
    196191      ! 
    197192      IF( nn_timing == 1 )   CALL timing_stop('dyn_keg') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf.F90

    r7753 r7910  
    2727   USE lib_mpp        ! distribued memory computing library 
    2828   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    29    USE wrk_nemo       ! Memory Allocation 
    3029   USE timing         ! Timing 
    3130 
     
    6261      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    6362      ! 
    64       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     63      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
    6564      !!---------------------------------------------------------------------- 
    6665      ! 
     
    6867      ! 
    6968      IF( l_trddyn )   THEN                      ! temporary save of momentum trends 
    70          CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    7169         ztrdu(:,:,:) = ua(:,:,:)  
    7270         ztrdv(:,:,:) = va(:,:,:)  
     
    8583         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    8684         CALL trd_dyn( ztrdu, ztrdv, jpdyn_ldf, kt ) 
    87          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv ) 
    8885      ENDIF 
    8986      !                                          ! print sum trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_iso.F90

    r6140 r7910  
    2828   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2929   USE prtctl          ! Print control 
    30    USE wrk_nemo        ! Memory Allocation 
    3130   USE timing          ! Timing 
    3231 
     
    112111      REAL(wp) ::   zuav, zvav, zuwslpi, zuwslpj, zvwslpi, zvwslpj   !   -      - 
    113112      ! 
    114       REAL(wp), POINTER, DIMENSION(:,:) :: ziut, zjuf, zjvt, zivf, zdku, zdk1u, zdkv, zdk1v 
     113      REAL(wp), DIMENSION(jpi,jpj) :: ziut, zjuf, zjvt, zivf, zdku, zdk1u, zdkv, zdk1v 
    115114      !!---------------------------------------------------------------------- 
    116115      ! 
    117116      IF( nn_timing == 1 )  CALL timing_start('dyn_ldf_iso') 
    118117      ! 
    119       CALL wrk_alloc( jpi, jpj, ziut, zjuf, zjvt, zivf, zdku, zdk1u, zdkv, zdk1v )  
    120118      ! 
    121119      IF( kt == nit000 ) THEN 
     
    409407      END DO                                           !   End of slab 
    410408      !                                                ! =============== 
    411       CALL wrk_dealloc( jpi, jpj, ziut, zjuf, zjvt, zivf, zdku, zdk1u, zdkv, zdk1v )  
    412409      ! 
    413410      IF( nn_timing == 1 )  CALL timing_stop('dyn_ldf_iso') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap_blp.F90

    r7753 r7910  
    1919   USE in_out_manager ! I/O manager 
    2020   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    21    USE wrk_nemo       ! Memory Allocation 
    2221   USE timing         ! Timing 
    2322 
     
    5756      REAL(wp) ::   zsign        ! local scalars 
    5857      REAL(wp) ::   zua, zva     ! local scalars 
    59       REAL(wp), POINTER, DIMENSION(:,:) ::  zcur, zdiv 
     58      REAL(wp), DIMENSION(jpi,jpj) ::  zcur, zdiv 
    6059      !!---------------------------------------------------------------------- 
    6160      ! 
     
    6867      IF( nn_timing == 1 )   CALL timing_start('dyn_ldf_lap') 
    6968      ! 
    70       CALL wrk_alloc( jpi, jpj, zcur, zdiv )  
    7169      ! 
    7270      IF( kpass == 1 ) THEN   ;   zsign =  1._wp      ! bilaplacian operator require a minus sign 
     
    107105      END DO                                           !   End of slab 
    108106      !                                                ! =============== 
    109       CALL wrk_dealloc( jpi, jpj, zcur, zdiv )  
    110107      ! 
    111108      IF( nn_timing == 1 )  CALL timing_stop('dyn_ldf_lap') 
     
    131128      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva   ! momentum trend 
    132129      ! 
    133       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zulap, zvlap   ! laplacian at u- and v-point 
     130      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zulap, zvlap   ! laplacian at u- and v-point 
    134131      !!---------------------------------------------------------------------- 
    135132      ! 
    136133      IF( nn_timing == 1 )  CALL timing_start('dyn_ldf_blp') 
    137134      ! 
    138       CALL wrk_alloc( jpi, jpj, jpk, zulap, zvlap )  
    139135      ! 
    140136      IF( kt == nit000 )  THEN 
     
    154150      CALL dyn_ldf_lap( kt, zulap, zvlap, pua, pva, 2 )   ! rotated laplacian applied to zlap (output in pta) 
    155151      ! 
    156       CALL wrk_dealloc( jpi, jpj, jpk, zulap, zvlap )  
    157152      ! 
    158153      IF( nn_timing == 1 )  CALL timing_stop('dyn_ldf_blp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90

    r7753 r7910  
    4444   USE lbclnk         ! lateral boundary condition (or mpp link) 
    4545   USE lib_mpp        ! MPP library 
    46    USE wrk_nemo       ! Memory Allocation 
    4746   USE prtctl         ! Print control 
    4847   USE timing         ! Timing 
     
    9796      REAL(wp) ::   zue3a, zue3n, zue3b, zuf, zcoef    ! local scalars 
    9897      REAL(wp) ::   zve3a, zve3n, zve3b, zvf, z1_2dt   !   -      - 
    99       REAL(wp), POINTER, DIMENSION(:,:)   ::  zue, zve 
    100       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ze3u_f, ze3v_f, zua, zva  
     98      REAL(wp), DIMENSION(jpi,jpj)   ::  zue, zve 
     99      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ze3u_f, ze3v_f, zua, zva  
    101100      !!---------------------------------------------------------------------- 
    102101      ! 
    103102      IF( nn_timing == 1 )   CALL timing_start('dyn_nxt') 
    104103      ! 
    105       IF( ln_dynspg_ts       )   CALL wrk_alloc( jpi,jpj,       zue, zve) 
    106       IF( l_trddyn           )   CALL wrk_alloc( jpi,jpj,jpk,   zua, zva) 
    107104      ! 
    108105      IF( kt == nit000 ) THEN 
     
    253250            ELSE                          ! Asselin filter applied on thickness weighted velocity 
    254251               ! 
    255                CALL wrk_alloc( jpi,jpj,jpk,   ze3u_f, ze3v_f ) 
    256252               ! Before filtered scale factor at (u/v)-points stored in ze3u_f, ze3v_f 
    257253               CALL dom_vvl_interpol( e3t_b(:,:,:), ze3u_f, 'U' ) 
     
    280276               e3v_b(:,:,1:jpkm1) = ze3v_f(:,:,1:jpkm1) 
    281277               ! 
    282                CALL wrk_dealloc( jpi,jpj,jpk,   ze3u_f, ze3v_f ) 
    283278            ENDIF 
    284279            ! 
     
    346341         &                       tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask ) 
    347342      !  
    348       IF( ln_dynspg_ts )   CALL wrk_dealloc( jpi,jpj,       zue, zve ) 
    349       IF( l_trddyn     )   CALL wrk_dealloc( jpi,jpj,jpk,   zua, zva ) 
    350343      ! 
    351344      IF( nn_timing == 1 )  CALL timing_stop('dyn_nxt') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r7753 r7910  
    2828   USE in_out_manager ! I/O manager 
    2929   USE lib_mpp        ! MPP library 
    30    USE wrk_nemo       ! Memory Allocation 
    3130   USE timing         ! Timing 
    3231 
     
    7574      INTEGER  ::   ji, jj, jk                             ! dummy loop indices 
    7675      REAL(wp) ::   z2dt, zg_2, zintp, zgrau0r             ! temporary scalar 
    77       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
    78       REAL(wp), POINTER, DIMENSION(:,:)   ::  zpice 
     76      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
     77      REAL(wp), DIMENSION(jpi,jpj)   ::  zpice 
    7978      !!---------------------------------------------------------------------- 
    8079      ! 
     
    8281      ! 
    8382      IF( l_trddyn )   THEN                      ! temporary save of ta and sa trends 
    84          CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv )  
    8583         ztrdu(:,:,:) = ua(:,:,:) 
    8684         ztrdv(:,:,:) = va(:,:,:) 
     
    124122         ! 
    125123         IF( nn_ice_embd == 2 ) THEN          !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 
    126             CALL wrk_alloc( jpi,jpj,   zpice ) 
    127124            !                                             
    128125            zintp = REAL( MOD( kt-1, nn_fsbc ) ) / REAL( nn_fsbc ) 
     
    136133            END DO 
    137134            ! 
    138             CALL wrk_dealloc( jpi,jpj,   zpice )          
    139135         ENDIF 
    140136         ! 
     
    161157         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    162158         CALL trd_dyn( ztrdu, ztrdv, jpdyn_spg, kt ) 
    163          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv )  
    164159      ENDIF 
    165160      !                                      ! print mean trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r7831 r7910  
    4747   USE iom             ! IOM library 
    4848   USE restart         ! only for lrst_oce 
    49    USE wrk_nemo        ! Memory Allocation 
    5049   USE timing          ! Timing     
    5150   USE diatmb          ! Top,middle,bottom output 
     
    151150      REAL(wp) ::   za0, za1, za2, za3    !   -      - 
    152151      ! 
    153       REAL(wp), POINTER, DIMENSION(:,:) :: zsshp2_e 
    154       REAL(wp), POINTER, DIMENSION(:,:) :: zu_trd, zv_trd, zu_frc, zv_frc, zssh_frc 
    155       REAL(wp), POINTER, DIMENSION(:,:) :: zwx, zwy, zhdiv 
    156       REAL(wp), POINTER, DIMENSION(:,:) :: zhup2_e, zhvp2_e, zhust_e, zhvst_e 
    157       REAL(wp), POINTER, DIMENSION(:,:) :: zsshu_a, zsshv_a 
    158       REAL(wp), POINTER, DIMENSION(:,:) :: zhf 
    159       REAL(wp), POINTER, DIMENSION(:,:) :: zcpx, zcpy                 ! Wetting/Dying gravity filter coef. 
     152      REAL(wp), DIMENSION(jpi,jpj) :: zsshp2_e 
     153      REAL(wp), DIMENSION(jpi,jpj) :: zu_trd, zv_trd, zu_frc, zv_frc, zssh_frc 
     154      REAL(wp), DIMENSION(jpi,jpj) :: zwx, zwy, zhdiv 
     155      REAL(wp), DIMENSION(jpi,jpj) :: zhup2_e, zhvp2_e, zhust_e, zhvst_e 
     156      REAL(wp), DIMENSION(jpi,jpj) :: zsshu_a, zsshv_a 
     157      REAL(wp), DIMENSION(jpi,jpj) :: zhf 
     158      REAL(wp), DIMENSION(jpi,jpj) :: zcpx, zcpy                 ! Wetting/Dying gravity filter coef. 
    160159      !!---------------------------------------------------------------------- 
    161160      ! 
     
    163162      ! 
    164163      !                                         !* Allocate temporary arrays 
    165       CALL wrk_alloc( jpi,jpj,   zsshp2_e, zhdiv ) 
    166       CALL wrk_alloc( jpi,jpj,   zu_trd, zv_trd) 
    167       CALL wrk_alloc( jpi,jpj,   zwx, zwy, zssh_frc, zu_frc, zv_frc) 
    168       CALL wrk_alloc( jpi,jpj,   zhup2_e, zhvp2_e, zhust_e, zhvst_e) 
    169       CALL wrk_alloc( jpi,jpj,   zsshu_a, zsshv_a                  ) 
    170       CALL wrk_alloc( jpi,jpj,   zhf ) 
    171       IF( ln_wd ) CALL wrk_alloc( jpi, jpj, zcpx, zcpy ) 
    172164      ! 
    173165      zmdi=1.e+20                               !  missing data indicator for masking 
     
    10911083      IF( lrst_oce .AND.ln_bt_fw )   CALL ts_rst( kt, 'WRITE' ) 
    10921084      ! 
    1093       CALL wrk_dealloc( jpi,jpj,   zsshp2_e, zhdiv ) 
    1094       CALL wrk_dealloc( jpi,jpj,   zu_trd, zv_trd ) 
    1095       CALL wrk_dealloc( jpi,jpj,   zwx, zwy, zssh_frc, zu_frc, zv_frc ) 
    1096       CALL wrk_dealloc( jpi,jpj,   zhup2_e, zhvp2_e, zhust_e, zhvst_e ) 
    1097       CALL wrk_dealloc( jpi,jpj,   zsshu_a, zsshv_a                                   ) 
    1098       CALL wrk_dealloc( jpi,jpj,   zhf ) 
    1099       IF( ln_wd ) CALL wrk_dealloc( jpi, jpj, zcpx, zcpy ) 
    11001085      ! 
    11011086      IF ( ln_diatmb ) THEN 
     
    12481233      INTEGER  ::   ji ,jj              ! dummy loop indices 
    12491234      REAL(wp) ::   zxr2, zyr2, zcmax   ! local scalar 
    1250       REAL(wp), POINTER, DIMENSION(:,:) ::   zcu 
     1235      REAL(wp), DIMENSION(jpi,jpj) ::   zcu 
    12511236      !!---------------------------------------------------------------------- 
    12521237      ! 
    12531238      ! Max courant number for ext. grav. waves 
    12541239      ! 
    1255       CALL wrk_alloc( jpi,jpj,   zcu ) 
    12561240      ! 
    12571241      DO jj = 1, jpj 
     
    13201304      ENDIF 
    13211305      ! 
    1322       CALL wrk_dealloc( jpi,jpj,   zcu ) 
    13231306      ! 
    13241307   END SUBROUTINE dyn_spg_ts_init 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r7753 r7910  
    4040   USE in_out_manager ! I/O manager 
    4141   USE lib_mpp        ! MPP library 
    42    USE wrk_nemo       ! Memory Allocation 
    4342   USE timing         ! Timing 
    4443 
     
    9897      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    9998      ! 
    100       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     99      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
    101100      !!---------------------------------------------------------------------- 
    102101      ! 
    103102      IF( nn_timing == 1 )  CALL timing_start('dyn_vor') 
    104103      ! 
    105       IF( l_trddyn )   CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    106104      ! 
    107105      SELECT CASE ( nvor_scheme )               !==  vorticity trend added to the general trend  ==! 
     
    190188         &                     tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    191189      ! 
    192       IF( l_trddyn )   CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    193190      ! 
    194191      IF( nn_timing == 1 )  CALL timing_stop('dyn_vor') 
     
    225222      INTEGER  ::   ji, jj, jk           ! dummy loop indices 
    226223      REAL(wp) ::   zx1, zy1, zx2, zy2   ! local scalars 
    227       REAL(wp), POINTER, DIMENSION(:,:) ::   zwx, zwy, zwz   ! 2D workspace 
     224      REAL(wp), DIMENSION(jpi,jpj) ::   zwx, zwy, zwz   ! 2D workspace 
    228225      !!---------------------------------------------------------------------- 
    229226      ! 
    230227      IF( nn_timing == 1 )  CALL timing_start('vor_ene') 
    231228      ! 
    232       CALL wrk_alloc( jpi,jpj,   zwx, zwy, zwz )  
    233229      ! 
    234230      IF( kt == nit000 ) THEN 
     
    311307      END DO                                           !   End of slab 
    312308      !                                                ! =============== 
    313       CALL wrk_dealloc( jpi, jpj, zwx, zwy, zwz )  
    314309      ! 
    315310      IF( nn_timing == 1 )  CALL timing_stop('vor_ene') 
     
    346341      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    347342      REAL(wp) ::   zuav, zvau   ! local scalars 
    348       REAL(wp), POINTER, DIMENSION(:,:) ::   zwx, zwy, zwz, zww   ! 2D workspace 
     343      REAL(wp), DIMENSION(jpi,jpj) ::   zwx, zwy, zwz, zww   ! 2D workspace 
    349344      !!---------------------------------------------------------------------- 
    350345      ! 
    351346      IF( nn_timing == 1 )  CALL timing_start('vor_ens') 
    352347      ! 
    353       CALL wrk_alloc( jpi,jpj,   zwx, zwy, zwz )  
    354348      ! 
    355349      IF( kt == nit000 ) THEN 
     
    431425      END DO                                           !   End of slab 
    432426      !                                                ! =============== 
    433       CALL wrk_dealloc( jpi, jpj, zwx, zwy, zwz )  
    434427      ! 
    435428      IF( nn_timing == 1 )  CALL timing_stop('vor_ens') 
     
    466459      REAL(wp) ::   zmsk, ze3    ! local scalars 
    467460      ! 
    468       REAL(wp), POINTER, DIMENSION(:,:)   :: zwx, zwy, zwz, z1_e3f 
    469       REAL(wp), POINTER, DIMENSION(:,:)   :: ztnw, ztne, ztsw, ztse 
     461      REAL(wp), DIMENSION(jpi,jpj)   :: zwx, zwy, zwz, z1_e3f 
     462      REAL(wp), DIMENSION(jpi,jpj)   :: ztnw, ztne, ztsw, ztse 
    470463      !!---------------------------------------------------------------------- 
    471464      ! 
    472465      IF( nn_timing == 1 )  CALL timing_start('vor_een') 
    473466      ! 
    474       CALL wrk_alloc( jpi,jpj,   zwx , zwy , zwz , z1_e3f )  
    475       CALL wrk_alloc( jpi,jpj,   ztnw, ztne, ztsw, ztse   )  
    476467      ! 
    477468      IF( kt == nit000 ) THEN 
     
    599590      !                                                ! =============== 
    600591      ! 
    601       CALL wrk_dealloc( jpi,jpj,   zwx , zwy , zwz , z1_e3f )  
    602       CALL wrk_dealloc( jpi,jpj,   ztnw, ztne, ztsw, ztse   )  
    603592      ! 
    604593      IF( nn_timing == 1 )  CALL timing_stop('vor_een') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90

    r7753 r7910  
    2222   USE lib_mpp        ! MPP library 
    2323   USE prtctl         ! Print control 
    24    USE wrk_nemo       ! Memory Allocation 
    2524   USE timing         ! Timing 
    2625 
     
    6059      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
    6160      REAL(wp) ::   zua, zva        ! temporary scalars 
    62       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwuw , zwvw 
    63       REAL(wp), POINTER, DIMENSION(:,:  ) ::  zww 
    64       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     61      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwuw , zwvw 
     62      REAL(wp), DIMENSION(jpi,jpj) ::  zww 
     63      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
    6564      !!---------------------------------------------------------------------- 
    6665      ! 
    6766      IF( nn_timing == 1 )  CALL timing_start('dyn_zad') 
    6867      ! 
    69       CALL wrk_alloc( jpi,jpj, zww )  
    70       CALL wrk_alloc( jpi,jpj,jpk, zwuw , zwvw )  
    7168      ! 
    7269      IF( kt == nit000 ) THEN 
     
    7673 
    7774      IF( l_trddyn )   THEN         ! Save ua and va trends 
    78          CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    7975         ztrdu(:,:,:) = ua(:,:,:)  
    8076         ztrdv(:,:,:) = va(:,:,:)  
     
    133129         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    134130         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zad, kt ) 
    135          CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    136131      ENDIF 
    137132      !                             ! Control print 
     
    139134         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    140135      ! 
    141       CALL wrk_dealloc( jpi,jpj, zww )  
    142       CALL wrk_dealloc( jpi,jpj,jpk, zwuw , zwvw )  
    143136      ! 
    144137      IF( nn_timing == 1 )  CALL timing_stop('dyn_zad') 
     
    175168      REAL(wp) ::   z2dtzts         ! length of Euler forward sub-timestep for vertical advection 
    176169      REAL(wp) ::   zts             ! length of sub-timestep for vertical advection 
    177       REAL(wp), POINTER, DIMENSION(:,:,:)   ::  zwuw , zwvw, zww 
    178       REAL(wp), POINTER, DIMENSION(:,:,:)   ::  ztrdu, ztrdv 
    179       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zus , zvs 
     170      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::  zwuw , zwvw, zww 
     171      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::  ztrdu, ztrdv 
     172      REAL(wp), DIMENSION(jpi,jpj,jpk,3) ::  zus , zvs 
    180173      !!---------------------------------------------------------------------- 
    181174      ! 
    182175      IF( nn_timing == 1 )  CALL timing_start('dyn_zad_zts') 
    183176      ! 
    184       CALL wrk_alloc( jpi,jpj,jpk,     zwuw, zwvw, zww )  
    185       CALL wrk_alloc( jpi,jpj,jpk,3,   zus , zvs )  
    186177      ! 
    187178      IF( kt == nit000 ) THEN 
     
    191182 
    192183      IF( l_trddyn )   THEN         ! Save ua and va trends 
    193          CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    194184         ztrdu(:,:,:) = ua(:,:,:)  
    195185         ztrdv(:,:,:) = va(:,:,:)  
     
    277267         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    278268         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zad, kt ) 
    279          CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    280269      ENDIF 
    281270      !                             ! Control print 
     
    283272         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    284273      ! 
    285       CALL wrk_dealloc( jpi,jpj,jpk,     zwuw, zwvw, zww )  
    286       CALL wrk_dealloc( jpi,jpj,jpk,3,   zus , zvs )  
    287274      ! 
    288275      IF( nn_timing == 1 )  CALL timing_stop('dyn_zad_zts') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90

    r7753 r7910  
    2424   USE lib_mpp        ! MPP library 
    2525   USE prtctl         ! Print control 
    26    USE wrk_nemo       ! Memory Allocation 
    2726   USE timing         ! Timing 
    2827 
     
    5453      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    5554      ! 
    56       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     55      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdu, ztrdv 
    5756      !!--------------------------------------------------------------------- 
    5857      ! 
     
    6564 
    6665      IF( l_trddyn )   THEN                      ! temporary save of ta and sa trends 
    67          CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    6866         ztrdu(:,:,:) = ua(:,:,:) 
    6967         ztrdv(:,:,:) = va(:,:,:) 
     
    8179         ztrdv(:,:,:) = ( va(:,:,:) - vb(:,:,:) ) / r2dt - ztrdv(:,:,:) 
    8280         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt ) 
    83          CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
    8481      ENDIF 
    8582      !                                          ! print mean trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_exp.F90

    r6140 r7910  
    2424   USE in_out_manager ! I/O manager 
    2525   USE lib_mpp        ! MPP library 
    26    USE wrk_nemo       ! Memory Allocation 
    2726   USE timing         ! Timing 
    2827 
     
    6665      INTEGER  ::   ji, jj, jk, jl     ! dummy loop indices 
    6766      REAL(wp) ::   zlavmr, zua, zva   ! local scalars 
    68       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwx, zwy, zwz, zww 
     67      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwx, zwy, zwz, zww 
    6968      !!---------------------------------------------------------------------- 
    7069      ! 
    7170      IF( nn_timing == 1 )   CALL timing_start('dyn_zdf_exp') 
    7271      ! 
    73       CALL wrk_alloc( jpi,jpj,jpk,   zwx, zwy, zwz, zww )  
    7472      ! 
    7573      IF( kt == nit000 .AND. lwp ) THEN 
     
    140138      ENDIF 
    141139      ! 
    142       CALL wrk_dealloc( jpi,jpj,jpk,   zwx, zwy, zwz, zww )  
    143140      ! 
    144141      IF( nn_timing == 1 )   CALL timing_stop('dyn_zdf_exp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r7753 r7910  
    2626   USE in_out_manager ! I/O manager 
    2727   USE lib_mpp        ! MPP library 
    28    USE wrk_nemo       ! Memory Allocation 
    2928   USE timing         ! Timing 
    3029 
     
    7271      REAL(wp) ::   zzwi, ze3ua   ! local scalars 
    7372      REAL(wp) ::   zzws, ze3va   !   -      - 
    74       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwi, zwd, zws 
     73      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwi, zwd, zws 
    7574      !!---------------------------------------------------------------------- 
    7675      ! 
    7776      IF( nn_timing == 1 )  CALL timing_start('dyn_zdf_imp') 
    7877      ! 
    79       CALL wrk_alloc( jpi,jpj,jpk, zwi, zwd, zws )  
    8078      ! 
    8179      IF( kt == nit000 ) THEN 
     
    342340      ENDIF 
    343341      ! 
    344       CALL wrk_dealloc( jpi,jpj,jpk,   zwi, zwd, zws)  
    345342      ! 
    346343      IF( nn_timing == 1 )   CALL timing_stop('dyn_zdf_imp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90

    r7753 r7910  
    3636   USE lbclnk         ! ocean lateral boundary condition (or mpp link) 
    3737   USE lib_mpp        ! MPP library 
    38    USE wrk_nemo       ! Memory Allocation 
    3938   USE timing         ! Timing 
    4039   USE wet_dry         ! Wetting/Drying flux limting 
     
    7473      INTEGER  ::   jk            ! dummy loop indice 
    7574      REAL(wp) ::   z2dt, zcoef   ! local scalars 
    76       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zhdiv   ! 2D workspace 
     75      REAL(wp), DIMENSION(jpi,jpj) ::   zhdiv   ! 2D workspace 
    7776      !!---------------------------------------------------------------------- 
    7877      ! 
    7978      IF( nn_timing == 1 )   CALL timing_start('ssh_nxt') 
    8079      ! 
    81       CALL wrk_alloc( jpi,jpj,   zhdiv )  
    8280      ! 
    8381      IF( kt == nit000 ) THEN 
     
    134132      IF(ln_ctl)   CALL prt_ctl( tab2d_1=ssha, clinfo1=' ssha  - : ', mask1=tmask, ovlap=1 ) 
    135133      ! 
    136       CALL wrk_dealloc( jpi, jpj, zhdiv )  
    137134      ! 
    138135      IF( nn_timing == 1 )  CALL timing_stop('ssh_nxt') 
     
    161158      REAL(wp) ::   z1_2dt       ! local scalars 
    162159      REAL(wp), POINTER, DIMENSION(:,:  ) ::  z2d 
    163       REAL(wp), POINTER, DIMENSION(:,:,:) ::  z3d, zhdiv 
     160      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  z3d, zhdiv 
    164161      !!---------------------------------------------------------------------- 
    165162      ! 
     
    180177      ! 
    181178      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN      ! z_tilde and layer cases 
    182          CALL wrk_alloc( jpi, jpj, jpk, zhdiv )  
    183179         ! 
    184180         DO jk = 1, jpkm1 
     
    200196         END DO 
    201197         !          IF( ln_vvl_layer ) wn(:,:,:) = 0.e0 
    202          CALL wrk_dealloc( jpi, jpj, jpk, zhdiv )  
    203198      ELSE   ! z_star and linear free surface cases 
    204199         DO jk = jpkm1, 1, -1                       ! integrate from the bottom the hor. divergence 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/DYN/wet_dry.F90

    r7646 r7910  
    2121   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2222   USE lib_mpp         ! MPP library 
    23    USE wrk_nemo        ! Memory Allocation 
    2423   USE timing          ! Timing 
    2524 
     
    113112      REAL(wp) ::   zdepwd              ! local scalar, always wet cell depth 
    114113      REAL(wp) ::   ztmp                ! local scalars 
    115       REAL(wp), POINTER,  DIMENSION(:,:) ::   zwdlmtu, zwdlmtv         !: W/D flux limiters 
    116       REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxp,  zflxn            ! local 2D workspace 
    117       REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxu,  zflxv            ! local 2D workspace 
    118       REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxu1, zflxv1           ! local 2D workspace 
     114      REAL(wp),  DIMENSION(jpi,jpj) ::   zwdlmtu, zwdlmtv         !: W/D flux limiters 
     115      REAL(wp),  DIMENSION(jpi,jpj) ::   zflxp,  zflxn            ! local 2D workspace 
     116      REAL(wp),  DIMENSION(jpi,jpj) ::   zflxu,  zflxv            ! local 2D workspace 
     117      REAL(wp),  DIMENSION(jpi,jpj) ::   zflxu1, zflxv1           ! local 2D workspace 
    119118      !!---------------------------------------------------------------------- 
    120119      ! 
     
    124123      IF(ln_wd) THEN 
    125124 
    126         CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 
    127         CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 
    128125        ! 
    129126        
     
    254251        ! 
    255252        ! 
    256         CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu, zflxv, zflxu1, zflxv1 ) 
    257         CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 
    258253        ! 
    259254      ENDIF 
     
    284279      REAL(wp) ::   zdepwd              ! local scalar, always wet cell depth 
    285280      REAL(wp) ::   ztmp                ! local scalars 
    286       REAL(wp), POINTER,  DIMENSION(:,:) ::   zwdlmtu, zwdlmtv         !: W/D flux limiters 
    287       REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxp,  zflxn            ! local 2D workspace 
    288       REAL(wp), POINTER,  DIMENSION(:,:) ::   zflxu1, zflxv1           ! local 2D workspace 
     281      REAL(wp),  DIMENSION(jpi,jpj) ::   zwdlmtu, zwdlmtv         !: W/D flux limiters 
     282      REAL(wp),  DIMENSION(jpi,jpj) ::   zflxp,  zflxn            ! local 2D workspace 
     283      REAL(wp),  DIMENSION(jpi,jpj) ::   zflxu1, zflxv1           ! local 2D workspace 
    289284      !!---------------------------------------------------------------------- 
    290285      ! 
     
    293288      IF(ln_wd) THEN 
    294289 
    295         CALL wrk_alloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 
    296         CALL wrk_alloc( jpi, jpj, zwdlmtu, zwdlmtv) 
    297290        ! 
    298291        
     
    401394        ! 
    402395        ! 
    403         CALL wrk_dealloc( jpi, jpj, zflxp, zflxn, zflxu1, zflxv1 ) 
    404         CALL wrk_dealloc( jpi, jpj, zwdlmtu, zwdlmtv) 
    405396        ! 
    406397      END IF 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/FLO/flo4rk.F90

    r6140 r7910  
    1515   USE dom_oce         ! ocean space and time domain 
    1616   USE in_out_manager  ! I/O manager 
    17    USE wrk_nemo        ! working array 
    1817 
    1918   IMPLICIT NONE 
     
    5352      INTEGER ::  ierror              ! error value 
    5453 
    55       REAL(wp), POINTER, DIMENSION(:)   ::   zgifl , zgjfl , zgkfl    ! index RK  positions 
    56       REAL(wp), POINTER, DIMENSION(:)   ::   zufl  , zvfl  , zwfl     ! interpolated velocity at the float position  
    57       REAL(wp), POINTER, DIMENSION(:,:) ::   zrkxfl, zrkyfl, zrkzfl   ! RK coefficients 
     54      REAL(wp), DIMENSION(jpnfl)   ::   zgifl , zgjfl , zgkfl    ! index RK  positions 
     55      REAL(wp), DIMENSION(jpnfl)   ::   zufl  , zvfl  , zwfl     ! interpolated velocity at the float position  
     56      REAL(wp), DIMENSION(jpnfl,4) ::   zrkxfl, zrkyfl, zrkzfl   ! RK coefficients 
    5857      !!--------------------------------------------------------------------- 
    59       CALL wrk_alloc( jpnfl,    zgifl , zgjfl , zgkfl  , zufl, zvfl, zwfl) 
    60       CALL wrk_alloc( jpnfl, 4, zrkxfl, zrkyfl, zrkzfl ) 
    6158      ! 
    6259      IF( ierror /= 0 ) THEN 
     
    154151      END DO 
    155152      ! 
    156       CALL wrk_dealloc( jpnfl,    zgifl , zgjfl , zgkfl  , zufl, zvfl, zwfl) 
    157       CALL wrk_dealloc( jpnfl, 4, zrkxfl, zrkyfl, zrkzfl ) 
    158153      ! 
    159154   END SUBROUTINE flo_4rk 
     
    178173      INTEGER  ::   jfl, jind1, jind2, jind3   ! dummy loop indices 
    179174      REAL(wp) ::   zsumu, zsumv, zsumw        ! local scalar 
    180       INTEGER  , POINTER, DIMENSION(:)       ::   iilu, ijlu, iklu   ! nearest neighbour INDEX-u 
    181       INTEGER  , POINTER, DIMENSION(:)       ::   iilv, ijlv, iklv   ! nearest neighbour INDEX-v 
    182       INTEGER  , POINTER, DIMENSION(:)       ::   iilw, ijlw, iklw   ! nearest neighbour INDEX-w 
    183       INTEGER  , POINTER, DIMENSION(:,:)     ::   iidu, ijdu, ikdu   ! 64 nearest neighbour INDEX-u 
    184       INTEGER  , POINTER, DIMENSION(:,:)     ::   iidv, ijdv, ikdv   ! 64 nearest neighbour INDEX-v 
    185       INTEGER  , POINTER, DIMENSION(:,:)     ::   iidw, ijdw, ikdw   ! 64 nearest neighbour INDEX-w 
    186       REAL(wp) , POINTER, DIMENSION(:,:)     ::   zlagxu, zlagyu, zlagzu   ! Lagrange  coefficients 
    187       REAL(wp) , POINTER, DIMENSION(:,:)     ::   zlagxv, zlagyv, zlagzv   !    -           - 
    188       REAL(wp) , POINTER, DIMENSION(:,:)     ::   zlagxw, zlagyw, zlagzw   !    -           - 
    189       REAL(wp) , POINTER, DIMENSION(:,:,:,:) ::   ztufl , ztvfl , ztwfl   ! velocity at choosen time step 
     175      INTEGER  , DIMENSION(jpnfl)       ::   iilu, ijlu, iklu   ! nearest neighbour INDEX-u 
     176      INTEGER  , DIMENSION(jpnfl)       ::   iilv, ijlv, iklv   ! nearest neighbour INDEX-v 
     177      INTEGER  , DIMENSION(jpnfl)       ::   iilw, ijlw, iklw   ! nearest neighbour INDEX-w 
     178      INTEGER  , DIMENSION(jpnfl,4)     ::   iidu, ijdu, ikdu   ! 64 nearest neighbour INDEX-u 
     179      INTEGER  , DIMENSION(jpnfl,4)     ::   iidv, ijdv, ikdv   ! 64 nearest neighbour INDEX-v 
     180      INTEGER  , DIMENSION(jpnfl,4)     ::   iidw, ijdw, ikdw   ! 64 nearest neighbour INDEX-w 
     181      REAL(wp) , DIMENSION(jpnfl,4)     ::   zlagxu, zlagyu, zlagzu   ! Lagrange  coefficients 
     182      REAL(wp) , DIMENSION(jpnfl,4)     ::   zlagxv, zlagyv, zlagzv   !    -           - 
     183      REAL(wp) , DIMENSION(jpnfl,4)     ::   zlagxw, zlagyw, zlagzw   !    -           - 
     184      REAL(wp) , DIMENSION(jpnfl,4,4,4) ::   ztufl , ztvfl , ztwfl   ! velocity at choosen time step 
    190185      !!--------------------------------------------------------------------- 
    191       CALL wrk_alloc( jpnfl,    iilu, ijlu, iklu, iilv, ijlv, iklv, iilw, ijlw, iklw ) 
    192       CALL wrk_alloc( jpnfl, 4, iidu, ijdu, ikdu, iidv, ijdv, ikdv, iidw, ijdw, ikdw ) 
    193