New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 9125 for branches/2017 – NEMO

Changeset 9125 for branches/2017


Ignore:
Timestamp:
2017-12-19T09:47:17+01:00 (6 years ago)
Author:
timgraham
Message:

Removed wrk_arrays from whole code. No change in SETTE results from this.

Location:
branches/2017/dev_merge_2017/NEMOGCM
Files:
1 deleted
79 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/ISOMIP/MY_SRC/usrdef_zgr.F90

    r9089 r9125  
    2424   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2525   USE lib_mpp        ! distributed memory computing library 
    26    USE wrk_nemo       ! Memory allocation 
    2726   USE timing         ! Timing 
    2827 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/LOCK_EXCHANGE/MY_SRC/usrdef_zgr.F90

    r7188 r9125  
    2121   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2222   USE lib_mpp        ! distributed memory computing library 
    23    USE wrk_nemo       ! Memory allocation 
    2423   USE timing         ! Timing 
    2524 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/OVERFLOW/MY_SRC/usrdef_zgr.F90

    r7188 r9125  
    2323   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2424   USE lib_mpp        ! distributed memory computing library 
    25    USE wrk_nemo       ! Memory allocation 
    2625   USE timing         ! Timing 
    2726 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/VORTEX/MY_SRC/usrdef_zgr.F90

    r9124 r9125  
    2323   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2424   USE lib_mpp        ! distributed memory computing library 
    25    USE wrk_nemo       ! Memory allocation 
    2625 
    2726   IMPLICIT NONE 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/bdyini.F90

    r9124 r9125  
    2929   USE lib_mpp        ! for mpp_sum   
    3030   USE iom            ! I/O 
    31    USE wrk_nemo       ! Memory Allocation 
    3231 
    3332   IMPLICIT NONE 
     
    148147      INTEGER :: com_east_b, com_west_b, com_south_b, com_north_b  ! Flags for boundaries receiving 
    149148      INTEGER :: iw_b(4), ie_b(4), is_b(4), in_b(4)                ! Arrays for neighbours coordinates 
    150       REAL(wp), POINTER, DIMENSION(:,:)       ::   zfmask  ! temporary fmask array excluding coastal boundary condition (shlat) 
     149      REAL(wp), DIMENSION(jpi,jpj)       ::   zfmask  ! temporary fmask array excluding coastal boundary condition (shlat) 
    151150      !! 
    152151      CHARACTER(LEN=1)                     ::   ctypebdy   !     -        -  
     
    11891188      ! For the flagu/flagv calculation below we require a version of fmask without 
    11901189      ! the land boundary condition (shlat) included: 
    1191       CALL wrk_alloc(jpi,jpj,  zfmask )  
    11921190      DO ij = 2, jpjm1 
    11931191         DO ii = 2, jpim1 
     
    13181316      IF( nb_bdy>0 )   DEALLOCATE( nbidta, nbjdta, nbrdta ) 
    13191317      ! 
    1320       CALL wrk_dealloc(jpi,jpj,   zfmask )  
    13211318      ! 
    13221319   END SUBROUTINE bdy_segs 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/domain.F90

    r9124 r9125  
    4545   USE lbclnk         ! ocean lateral boundary condition (or mpp link) 
    4646   USE lib_mpp        ! distributed memory computing library 
    47    USE wrk_nemo       ! Memory Allocation 
    4847 
    4948   IMPLICIT NONE 
  • branches/2017/dev_merge_2017/NEMOGCM/CONFIG/TEST_CASES/WAD/MY_SRC/usrdef_zgr.F90

    r9124 r9125  
    2424   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2525   USE lib_mpp        ! distributed memory computing library 
    26    USE wrk_nemo       ! Memory allocation 
    2726 
    2827   IMPLICIT NONE 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r9124 r9125  
    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 
     
    108107      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    109108      INTEGER             ::   ji, jj, jk 
    110       REAL(wp), POINTER, DIMENSION(:,:)   :: zemp 
     109      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   :: zemp 
    111110      !!---------------------------------------------------------------------- 
    112111      ! 
     
    139138      ! 
    140139      IF( .NOT.ln_linssh ) THEN 
    141          CALL wrk_alloc(jpi, jpj, zemp ) 
     140         ALLOCATE( zemp(jpi,jpj) ) 
    142141         zhdivtr(:,:,:) = sf_dyn(jf_div)%fnow(:,:,:) * tmask(:,:,:)    ! effective u-transport 
    143142         emp_b (:,:)    = sf_dyn(jf_empb)%fnow(:,:,1) * tmask(:,:,1)    ! E-P 
    144143         zemp   (:,:)   = 0.5_wp * ( emp(:,:) + emp_b(:,:) ) + rnf(:,:) + fwbcorr * tmask(:,:,1) 
    145144         CALL dta_dyn_ssh( kt, zhdivtr, sshb, zemp, ssha, e3t_a(:,:,:) )  !=  ssh, vertical scale factor & vertical transport 
    146          CALL wrk_dealloc(jpi, jpj, zemp ) 
     145         DEALLOCATE( zemp ) 
    147146         !                                           Write in the tracer restart file 
    148147         !                                          ******************************* 
     
    587586      REAL(wp) ::   ztintb     ! ratio applied to before records when doing time interpolation 
    588587      INTEGER  ::   iswap  
    589       REAL(wp), POINTER, DIMENSION(:,:,:) :: zuslp, zvslp, zwslpi, zwslpj 
     588      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zuslp, zvslp, zwslpi, zwslpj 
    590589      !!--------------------------------------------------------------------- 
    591       ! 
    592       CALL wrk_alloc(jpi, jpj, jpk, zuslp, zvslp, zwslpi, zwslpj ) 
    593590      ! 
    594591      IF( sf_dyn(jf_tem)%ln_tint ) THEN    ! Computes slopes (here avt is used as workspace)                        
     
    660657      ENDIF 
    661658      ! 
    662       CALL wrk_dealloc(jpi, jpj, jpk, zuslp, zvslp, zwslpi, zwslpj ) 
    663       ! 
    664659   END SUBROUTINE dta_dyn_slp 
    665660 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90

    r9124 r9125  
    1616   !!                    conditions 
    1717   !!---------------------------------------------------------------------- 
    18    USE wrk_nemo        ! Memory Allocation 
    1918   USE oce             ! ocean dynamics and tracers  
    2019   USE dom_oce         ! ocean space and time domain 
     
    5049      INTEGER ::   jk, ii, ij, ib_bdy, ib, igrd     ! Loop counter 
    5150      LOGICAL ::   ll_dyn2d, ll_dyn3d, ll_orlanski 
    52       REAL(wp), POINTER, DIMENSION(:,:) :: pua2d, pva2d     ! after barotropic velocities 
     51      REAL(wp), DIMENSION(jpi,jpj) :: pua2d, pva2d     ! after barotropic velocities 
    5352      !!---------------------------------------------------------------------- 
    5453      ! 
     
    6564     &   .OR. cn_dyn3d(ib_bdy) == 'orlanski' .OR. cn_dyn3d(ib_bdy) == 'orlanski_npo')   ll_orlanski = .true. 
    6665      END DO 
    67  
    68       !------------------------------------------------------- 
    69       ! Set pointers 
    70       !------------------------------------------------------- 
    71  
    72       CALL wrk_alloc( jpi,jpj,   pua2d, pva2d )  
    7366 
    7467      !------------------------------------------------------- 
     
    124117      END IF 
    125118      ! 
    126       CALL wrk_dealloc( jpi,jpj,  pua2d, pva2d )  
    127       ! 
    128119   END SUBROUTINE bdy_dyn 
    129120 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90

    r9124 r9125  
    2525   USE fldread        ! 
    2626   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    27    USE wrk_nemo       ! Memory allocation 
    2827 
    2928   IMPLICIT NONE 
     
    7574      CHARACTER(len=80)                         ::   clfile              !: full file name for tidal input file  
    7675      REAL(wp),ALLOCATABLE, DIMENSION(:,:,:)    ::   dta_read            !: work space to read in tidal harmonics data 
    77       REAL(wp), POINTER, DIMENSION(:,:)         ::   ztr, zti            !:  "     "    "   "   "   "        "      "  
     76      REAL(wp),ALLOCATABLE, DIMENSION(:,:)      ::   ztr, zti            !:  "     "    "   "   "   "        "      "  
    7877      !! 
    7978      TYPE(TIDES_DATA),  POINTER                ::   td                  !: local short cut    
     
    150149               ! given on the global domain (ie global, jpiglo x jpjglo) 
    151150               ! 
    152                CALL wrk_alloc( jpi,jpj,   zti, ztr ) 
     151               ALLOCATE( zti(jpi,jpj), ztr(jpi,jpj) ) 
    153152               ! 
    154153               ! SSH fields 
     
    200199               CALL iom_close( inum ) 
    201200               ! 
    202                CALL wrk_dealloc( jpi,jpj,  ztr, zti )  
     201               DEALLOCATE( ztr, zti )  
    203202               ! 
    204203            ELSE             
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90

    r9124 r9125  
    1717   USE iom            ! I/O library (iom_get) 
    1818   USE in_out_manager ! I/O manager (ctmp1) 
    19    USE wrk_nemo                      ! Memory allocation 
    2019 
    2120   IMPLICIT NONE 
     
    5857      REAL(wp) ::  zlam1, zcos_alpha, ze1, ze1deg  ! Case 5 local scalars 
    5958      REAL(wp) ::  zphi1, zsin_alpha, zim05, zjm05 !           
    60       REAL(wp) , POINTER, DIMENSION(:,:) ::  gphidta, glamdta, zdist ! Global lat/lon 
     59      REAL(wp) , DIMENSION(jpidta,jpjdta) ::  gphidta, glamdta, zdist ! Global lat/lon 
    6160      !! 
    6261      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
     
    7574902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 
    7675 
    77       CALL wrk_alloc( jpidta,jpjdta,   gphidta, glamdta, zdist ) 
    7876 
    7977      ! ============================= ! 
     
    183181      jpizoom = iloc(1) + nimpp - 2  ! Minloc index - 1; want the bottom-left 
    184182      jpjzoom = iloc(2) + njmpp - 2  ! corner index of the zoom domain. 
    185  
    186       CALL wrk_dealloc( jpidta,jpjdta,   gphidta, glamdta, zdist ) 
    187183 
    188184      IF (lwp) THEN 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90

    r9124 r9125  
    1818   USE fldread        ! read input fields 
    1919   USE lib_mpp        ! MPP library 
    20    USE wrk_nemo       ! Memory allocation 
    2120   USE timing         ! Timing 
    2221 
     
    139138      INTEGER ::   ik, il0, il1, ii0, ii1, ij0, ij1  ! local integers 
    140139      REAL(wp)::   zl, zi                            ! local floats 
    141       REAL(wp), POINTER, DIMENSION(:) ::  zup, zvp   ! 1D workspace 
     140      REAL(wp), ALLOCATABLE, DIMENSION(:) ::  zup, zvp   ! 1D workspace 
    142141      !!---------------------------------------------------------------------- 
    143142      ! 
     
    151150      IF( ln_sco ) THEN                   !==   s- or mixed s-zps-coordinate   ==! 
    152151         ! 
    153          CALL wrk_alloc( jpk,   zup, zvp ) 
     152         ALLOCATE( zup(jpk), zvp(jpk) ) 
    154153         ! 
    155154         IF( kt == nit000 .AND. lwp )THEN 
     
    187186         END DO 
    188187         !  
    189          CALL wrk_dealloc( jpk,  zup, zvp ) 
     188         DEALLOCATE( zup, zvp ) 
    190189         !  
    191190      ELSE                                !==   z- or zps- coordinate   ==! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90

    r9124 r9125  
    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( ln_timing )   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( ln_timing )   CALL timing_stop( 'dyn_dmp') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/CRS/crsdom.F90

    r9019 r9125  
    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(:,:,:), ALLOCATABLE ::   zsurf, zsurfmsk, zmask   
    490487      !!----------------------------------------------------------------   
    491488      ! 
     
    496493      CASE ( 'VOL' ) 
    497494         ! 
    498          CALL wrk_alloc( jpi,jpj,jpk,   zsurf, zsurfmsk ) 
     495         ALLOCATE( zsurf(jpi,jpj,jpk), zsurfmsk(jpi,jpj,jpk) ) 
    499496         !    
    500497         SELECT CASE ( cd_type ) 
     
    585582               END SELECT 
    586583 
    587               CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zsurfmsk ) 
     584              DEALLOCATE( zsurf, zsurfmsk ) 
    588585 
    589586         CASE ( 'SUM' ) 
    590587          
    591             CALL wrk_alloc( jpi, jpj, jpk, zsurfmsk ) 
     588            ALLOCATE( zsurfmsk(jpi,jpj,jpk) ) 
    592589 
    593590            SELECT CASE ( cd_type ) 
     
    763760              ENDIF 
    764761 
    765               CALL wrk_dealloc( jpi, jpj, jpk, zsurfmsk ) 
     762              DEALLOCATE( zsurfmsk ) 
    766763 
    767764         CASE ( 'MAX' )    !  search the max of unmasked grid cells 
    768765 
    769             CALL wrk_alloc( jpi, jpj, jpk, zmask ) 
     766            ALLOCATE( zmask(jpi,jpj,jpk) ) 
    770767 
    771768            SELECT CASE ( cd_type ) 
     
    934931              END SELECT 
    935932 
    936               CALL wrk_dealloc( jpi, jpj, jpk, zmask ) 
     933              DEALLOCATE( zmask ) 
    937934 
    938935         CASE ( 'MIN' )      !   Search the min of unmasked grid cells 
    939936 
    940             CALL wrk_alloc( jpi, jpj, jpk, zmask ) 
     937            ALLOCATE( zmask(jpi,jpj,jpk) ) 
    941938 
    942939            SELECT CASE ( cd_type ) 
     
    11041101            END SELECT 
    11051102            ! 
    1106             CALL wrk_dealloc( jpi, jpj, jpk, zmask ) 
     1103            DEALLOCATE( zmask ) 
    11071104            ! 
    11081105         END SELECT 
     
    11491146      INTEGER  :: ijie, ijje, ii, ij, je_2 
    11501147      REAL(wp) :: zflcrs, zsfcrs    
    1151       REAL(wp), DIMENSION(:,:), POINTER :: zsurfmsk    
     1148      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zsurfmsk    
    11521149      !!----------------------------------------------------------------   
    11531150      ! 
     
    11581155        CASE ( 'VOL' ) 
    11591156       
    1160             CALL wrk_alloc( jpi, jpj, zsurfmsk ) 
     1157            ALLOCATE( zsurfmsk(jpi,jpj) ) 
    11611158            zsurfmsk(:,:) =  p_e12(:,:) * p_e3(:,:,1) * p_mask(:,:,1) 
    11621159 
     
    12221219            ENDDO 
    12231220 
    1224             CALL wrk_dealloc( jpi, jpj, zsurfmsk ) 
     1221            DEALLOCATE( zsurfmsk ) 
    12251222 
    12261223         CASE ( 'SUM' ) 
    12271224          
    1228             CALL wrk_alloc( jpi, jpj, zsurfmsk ) 
     1225            ALLOCATE( zsurfmsk(jpi,jpj) ) 
    12291226            IF( PRESENT( p_e3 ) ) THEN 
    12301227               zsurfmsk(:,:) =  p_e12(:,:) * p_e3(:,:,1) * p_mask(:,:,1) 
     
    13641361              ENDIF 
    13651362 
    1366               CALL wrk_dealloc( jpi, jpj, zsurfmsk ) 
     1363              DEALLOCATE( zsurfmsk ) 
    13671364 
    13681365         CASE ( 'MAX' ) 
     
    16441641      INTEGER ::  ijie, ijje, ii, ij, je_2 
    16451642      REAL(wp) :: ze3crs   
    1646       REAL(wp), DIMENSION(:,:,:), POINTER :: zmask, zsurf    
     1643      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask, zsurf    
    16471644 
    16481645      !!----------------------------------------------------------------   
     
    16511648       p_e3_max_crs(:,:,:) = 1. 
    16521649    
    1653  
    1654        CALL wrk_alloc( jpi, jpj, jpk, zmask, zsurf ) 
    16551650 
    16561651       SELECT CASE ( cd_type ) 
     
    17561751       CALL crs_lbc_lnk( p_e3_max_crs, cd_type, 1.0, pval=1.0 )   
    17571752       !               
    1758        CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zmask ) 
    17591753       ! 
    17601754   END SUBROUTINE crs_dom_e3 
     
    17731767      INTEGER  :: ji, jj, jk                   ! dummy loop indices 
    17741768      INTEGER  :: ii, ij, je_2 
    1775       REAL(wp), DIMENSION(:,:,:), POINTER :: zsurf, zsurfmsk    
     1769      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsurf, zsurfmsk    
    17761770      !!----------------------------------------------------------------   
    17771771      ! Initialize 
    17781772 
    1779  
    1780       CALL wrk_alloc( jpi, jpj, jpk, zsurf, zsurfmsk ) 
    17811773      ! 
    17821774      SELECT CASE ( cd_type ) 
     
    18671859      CALL crs_lbc_lnk( p_surf_crs    , cd_type, 1.0, pval=1.0 ) 
    18681860      CALL crs_lbc_lnk( p_surf_crs_msk, cd_type, 1.0, pval=1.0 ) 
    1869  
    1870       CALL wrk_dealloc( jpi, jpj, jpk, zsurfmsk, zsurf ) 
    18711861 
    18721862   END SUBROUTINE crs_dom_sfc 
     
    22362226      !!  local variables 
    22372227      INTEGER  :: ji,jj,jk      ! dummy indices 
    2238       REAL(wp), DIMENSION(:,:)  , POINTER :: zmbk 
     2228      REAL(wp), DIMENSION(jpi_crs, jpj_crs) :: zmbk 
    22392229      !!---------------------------------------------------------------- 
    2240     
    2241       CALL wrk_alloc( jpi_crs, jpj_crs, zmbk ) 
    22422230    
    22432231      mbathy_crs(:,:) = jpkm1 
     
    22812269      zmbk(:,:) = REAL( mbkv_crs(:,:), wp )   ;   CALL crs_lbc_lnk(zmbk,'V',1.0) ; mbkv_crs  (:,:) = MAX( INT( zmbk(:,:) ), 1 )  
    22822270      ! 
    2283       CALL wrk_dealloc( jpi_crs, jpj_crs, zmbk ) 
    2284       ! 
    22852271   END SUBROUTINE crs_dom_bat 
    22862272 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/CRS/crsdomwri.F90

    r9124 r9125  
    1919   USE crsdom         ! coarse grid domain 
    2020   USE crslbclnk       ! crs mediator to lbclnk 
    21    USE wrk_nemo        ! Working array 
    2221 
    2322   IMPLICIT NONE 
     
    6362      INTEGER           ::   ji, jj, jk   ! dummy loop indices 
    6463      !                                   !  workspaces 
    65       REAL(wp), POINTER, DIMENSION(:,:  ) :: zprt, zprw  
    66       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepu, zdepv 
    67       REAL(wp), POINTER, DIMENSION(:,:  ) :: ze3tp, ze3wp 
    68       !!---------------------------------------------------------------------- 
    69       ! 
    70       CALL wrk_alloc( jpi_crs, jpj_crs,      zprt , zprw  ) 
    71       CALL wrk_alloc( jpi_crs, jpj_crs,      ze3tp, ze3wp ) 
    72       CALL wrk_alloc( jpi_crs, jpj_crs, jpk, zdepu, zdepv ) 
    73  
     64      REAL(wp), DIMENSION(jpi_crs,jpj_crs    ) :: zprt, zprw  
     65      REAL(wp), DIMENSION(jpi_crs,jpj_crs,jpk) :: zdepu, zdepv 
     66      REAL(wp), DIMENSION(jpi_crs,jpj_crs    ) :: ze3tp, ze3wp 
     67      !!---------------------------------------------------------------------- 
     68      ! 
    7469      ze3tp(:,:) = 0.0 
    7570      ze3wp(:,:) = 0.0 
     
    289284      END SELECT 
    290285      ! 
    291       CALL wrk_dealloc( jpi_crs, jpj_crs,      zprt , zprw  ) 
    292       CALL wrk_dealloc( jpi_crs, jpj_crs,      ze3tp, ze3wp ) 
    293       CALL wrk_dealloc( jpi_crs, jpj_crs, jpk, zdepu, zdepv ) 
    294       ! 
    295286   END SUBROUTINE crs_dom_wri 
    296287 
     
    312303      INTEGER  ::  ji       ! dummy loop indices 
    313304      LOGICAL, DIMENSION(SIZE(puniq,1),SIZE(puniq,2),1) ::  lldbl  ! store whether each point is unique or not 
    314       REAL(wp), POINTER, DIMENSION(:,:) :: ztstref 
    315       !!---------------------------------------------------------------------- 
    316       ! 
    317       CALL wrk_alloc( jpi_crs, jpj_crs, ztstref ) 
     305      REAL(wp), DIMENSION(jpi_crs,jpj_crs) :: ztstref 
     306      !!---------------------------------------------------------------------- 
    318307      ! 
    319308      ! build an array with different values for each element  
     
    331320      puniq(nldi_crs:nlei_crs,nldj_crs:nlej_crs) = REAL( COUNT( lldbl(nldi_crs:nlei_crs,nldj_crs:nlej_crs,:), dim = 3 ) , wp ) 
    332321      ! 
    333       CALL wrk_dealloc( jpi_crs, jpj_crs, ztstref ) 
    334       ! 
    335322   END SUBROUTINE dom_uniq_crs 
    336323 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90

    r9124 r9125  
    2222   USE in_out_manager 
    2323   USE lib_mpp 
    24    USE wrk_nemo  
    2524 
    2625   IMPLICIT NONE 
     
    7271      INTEGER  :: ierr                                ! allocation error status 
    7372      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    74       REAL(wp), DIMENSION(:,:,:), POINTER :: ze3t, ze3u, ze3v, ze3w 
     73      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze3t, ze3u, ze3v, ze3w 
    7574 
    7675      NAMELIST/namcrs/ nn_factx, nn_facty, nn_binref, nn_msh_crs, nn_crs_kz, ln_crs_wn 
     
    180179      
    181180     ! 
    182      CALL wrk_alloc( jpi,jpj,jpk,   ze3t, ze3u, ze3v, ze3w ) 
    183      ! 
    184181     ze3t(:,:,:) = e3t_n(:,:,:) 
    185182     ze3u(:,:,:) = e3u_n(:,:,:) 
     
    245242      ! 7. Finish and clean-up 
    246243      !--------------------------------------------------------- 
    247       CALL wrk_dealloc( jpi,jpj,jpk,   ze3t, ze3u, ze3v, ze3w ) 
    248244      ! 
    249245   END SUBROUTINE crs_init 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90

    r9124 r9125  
    2222   USE fldread        ! type FLD_N 
    2323   USE timing         ! preformance summary 
    24    USE wrk_nemo       ! working arrays 
    2524 
    2625   IMPLICIT NONE 
     
    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), ALLOCATABLE, DIMENSION(:,:)     :: zarea_ssh , zbotpres       ! 2D workspace  
     78      REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: zpe                         ! 2D workspace  
     79      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: zrhd , zrhop               ! 3D workspace 
     80      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztsn                       ! 4D workspace 
     81 
    8282      !!-------------------------------------------------------------------- 
    8383      IF( ln_timing )   CALL timing_start('dia_ar5') 
     
    8585      IF( kt == nit000 )     CALL dia_ar5_init 
    8686 
    87       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                ) 
     87      IF( l_ar5 ) THEN  
     88         ALLOCATE( zarea_ssh(jpi,jpj) , zbotpres(jpi,jpj) ) 
     89         ALLOCATE( zrhd(jpi,jpj,jpk) , zrhop(jpi,jpj,jpk) ) 
     90         ALLOCATE( ztsn(jpi,jpj,jpk,jpts) ) 
    9191         zarea_ssh(:,:) = area(:,:) * sshn(:,:) 
    9292      ENDIF 
     
    212212      ! Exclude points where rn2 is negative as convection kicks in here and 
    213213      ! work is not being done against stratification 
    214          CALL wrk_alloc( jpi, jpj, zpe ) 
     214         ALLOCATE( zpe(jpi,jpj) ) 
    215215         zpe(:,:) = 0._wp 
    216216         IF( ln_zdfddm ) THEN 
     
    247247!!gm           CALL lbc_lnk( zpe, 'T', 1._wp)          
    248248          CALL iom_put( 'tnpeo', zpe ) 
    249           CALL wrk_dealloc( jpi, jpj, zpe ) 
    250       ENDIF 
    251       ! 
     249          DEALLOCATE( zpe ) 
     250      ENDIF 
     251 
    252252      IF( l_ar5 ) THEN 
    253         CALL wrk_dealloc( jpi , jpj              , zarea_ssh , zbotpres ) 
    254         CALL wrk_dealloc( jpi , jpj , jpk        , zrhd      , zrhop    ) 
    255         CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn                 ) 
     253        DEALLOCATE( zarea_ssh , zbotpres ) 
     254        DEALLOCATE( zrhd      , zrhop    ) 
     255        DEALLOCATE( ztsn                 ) 
    256256      ENDIF 
    257257      ! 
     
    274274      ! 
    275275      INTEGER    ::  ji, jj, jk 
    276       REAL(wp), POINTER, DIMENSION(:,:)  :: z2d 
     276      REAL(wp), DIMENSION(jpi,jpj)  :: z2d 
    277277 
    278278     
    279  
    280       CALL wrk_alloc( jpi, jpj, z2d ) 
    281279      z2d(:,:) = pua(:,:,1)  
    282280      DO jk = 1, jpkm1 
     
    315313       ENDIF 
    316314           
    317        CALL wrk_dealloc( jpi, jpj, z2d ) 
    318  
    319315   END SUBROUTINE dia_ar5_hst 
    320316 
     
    330326      INTEGER  ::   ji, jj, jk  ! dummy loop indices 
    331327      REAL(wp) ::   zztmp   
    332       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zsaldta   ! Jan/Dec levitus salinity 
     328      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   zsaldta   ! Jan/Dec levitus salinity 
    333329      ! 
    334330      !!---------------------------------------------------------------------- 
     
    341337      IF( l_ar5 ) THEN 
    342338         ! 
    343          CALL wrk_alloc( jpi , jpj , jpk, jpts, zsaldta ) 
    344339         !                                      ! allocate dia_ar5 arrays 
    345340         IF( dia_ar5_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_ar5_init : unable to allocate arrays' ) 
     
    357352         IF( lk_mpp )   CALL mpp_sum( vol0 ) 
    358353 
    359          CALL iom_open ( 'sali_ref_clim_monthly', inum ) 
    360          CALL iom_get  ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,1), 1  ) 
    361          CALL iom_get  ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,2), 12 ) 
    362          CALL iom_close( inum ) 
    363  
    364          sn0(:,:,:) = 0.5_wp * ( zsaldta(:,:,:,1) + zsaldta(:,:,:,2) )         
    365          sn0(:,:,:) = sn0(:,:,:) * tmask(:,:,:) 
    366          IF( ln_zps ) THEN               ! z-coord. partial steps 
    367             DO jj = 1, jpj               ! interpolation of salinity at the last ocean level (i.e. the partial step) 
    368                DO ji = 1, jpi 
    369                   ik = mbkt(ji,jj) 
    370                   IF( ik > 1 ) THEN 
    371                      zztmp = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
    372                      sn0(ji,jj,ik) = ( 1._wp - zztmp ) * sn0(ji,jj,ik) + zztmp * sn0(ji,jj,ik-1) 
    373                   ENDIF 
    374                END DO 
    375             END DO 
     354         IF( iom_use( 'sshthster' ) ) THEN 
     355            ALLOCATE( zsaldta(jpi,jpj,jpj,jpts) ) 
     356            CALL iom_open ( 'sali_ref_clim_monthly', inum ) 
     357            CALL iom_get  ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,1), 1  ) 
     358            CALL iom_get  ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,2), 12 ) 
     359            CALL iom_close( inum ) 
     360 
     361            sn0(:,:,:) = 0.5_wp * ( zsaldta(:,:,:,1) + zsaldta(:,:,:,2) )         
     362            sn0(:,:,:) = sn0(:,:,:) * tmask(:,:,:) 
     363            IF( ln_zps ) THEN               ! z-coord. partial steps 
     364               DO jj = 1, jpj               ! interpolation of salinity at the last ocean level (i.e. the partial step) 
     365                  DO ji = 1, jpi 
     366                     ik = mbkt(ji,jj) 
     367                     IF( ik > 1 ) THEN 
     368                        zztmp = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
     369                        sn0(ji,jj,ik) = ( 1._wp - zztmp ) * sn0(ji,jj,ik) + zztmp * sn0(ji,jj,ik-1) 
     370                     ENDIF 
     371                  END DO 
     372               END DO 
     373            ENDIF 
     374            ! 
     375            DEALLOCATE( zsaldta ) 
    376376         ENDIF 
    377          ! 
    378          CALL wrk_dealloc( jpi , jpj , jpk, jpts, zsaldta ) 
    379377         ! 
    380378      ENDIF 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90

    r9124 r9125  
    506506                istart,iend      !first and last points selected in listpoint 
    507507     INTEGER :: jpoint           !loop on list points 
    508      INTEGER, POINTER, DIMENSION(nb_point_max)   :: idirec !contains temporary sec%direction 
    509      INTEGER, POINTER, DIMENSION(2,nb_point_max) :: icoord !contains temporary sec%listpoint 
     508     INTEGER, DIMENSION(nb_point_max)   :: idirec !contains temporary sec%direction 
     509     INTEGER, DIMENSION(2,nb_point_max) :: icoord !contains temporary sec%listpoint 
    510510     !---------------------------------------------------------------------------- 
    511       ! 
     511     ! 
    512512     IF( ld_debug )WRITE(numout,*)'      -------------------------' 
    513513     IF( ld_debug )WRITE(numout,*)'      removepoints in listpoint' 
     
    559559      ! 
    560560   END SUBROUTINE removepoints 
     561 
    561562 
    562563   SUBROUTINE transport(sec,ld_debug,jsec) 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DIA/diatmb.F90

    r9124 r9125  
    103103      !!-------------------------------------------------------------------- 
    104104      REAL(wp) ::   zmdi =1.e+20     ! land value 
    105       REAL(wp), DIMENSION(jpi,jpj,3) ::   zwtmb   ! workspace  
     105      REAL(wp), DIMENSION(jpi,jpj,3) :: zwtmb    ! workspace  
    106106      !!-------------------------------------------------------------------- 
    107107      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/FLO/flo4rk.F90

    r6140 r9125  
    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       CALL wrk_alloc( jpnfl, 4, zlagxu, zlagyu, zlagzu, zlagxv, zlagyv, zlagzv, zlagxw, zlagyw, zlagzw ) 
    194       CALL wrk_alloc( jpnfl, 4, 4, 4, ztufl , ztvfl , ztwfl ) 
    195186  
    196187      ! Interpolation of U velocity 
     
    451442      END DO 
    452443      !    
    453       CALL wrk_dealloc( jpnfl,    iilu, ijlu, iklu, iilv, ijlv, iklv, iilw, ijlw, iklw ) 
    454       CALL wrk_dealloc( jpnfl, 4, iidu, ijdu, ikdu, iidv, ijdv, ikdv, iidw, ijdw, ikdw ) 
    455       CALL wrk_dealloc( jpnfl, 4, zlagxu, zlagyu, zlagzu, zlagxv, zlagyv, zlagzv, zlagxw, zlagyw, zlagzw ) 
    456       CALL wrk_dealloc( jpnfl, 4, 4, 4, ztufl , ztvfl , ztwfl ) 
    457444      !    
    458445   END SUBROUTINE flo_interp 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/FLO/floblk.F90

    r7646 r9125  
    1616   USE in_out_manager  ! I/O manager 
    1717   USE lib_mpp         ! distribued memory computing library 
    18    USE wrk_nemo        ! working array 
    1918 
    2019   IMPLICIT NONE 
     
    5453      REAL(wp), DIMENSION ( 2 )  ::   zsurfx, zsurfy   ! surface of the face of the mesh 
    5554 
    56       INTEGER  , POINTER, DIMENSION ( : )  ::   iil, ijl, ikl                   ! index of nearest mesh 
    57       INTEGER  , POINTER, DIMENSION ( : )  ::   iiloc , ijloc               
    58       INTEGER  , POINTER, DIMENSION ( : )  ::   iiinfl, ijinfl, ikinfl          ! index of input mesh of the float. 
    59       INTEGER  , POINTER, DIMENSION ( : )  ::   iioutfl, ijoutfl, ikoutfl       ! index of output mesh of the float. 
    60       REAL(wp) , POINTER, DIMENSION ( : )  ::   zgifl, zgjfl, zgkfl             ! position of floats, index on  
     55      INTEGER  , DIMENSION ( jpnfl )  ::   iil, ijl, ikl                   ! index of nearest mesh 
     56      INTEGER  , DIMENSION ( jpnfl )  ::   iiloc , ijloc               
     57      INTEGER  , DIMENSION ( jpnfl )  ::   iiinfl, ijinfl, ikinfl          ! index of input mesh of the float. 
     58      INTEGER  , DIMENSION ( jpnfl )  ::   iioutfl, ijoutfl, ikoutfl       ! index of output mesh of the float. 
     59      REAL(wp) , DIMENSION ( jpnfl )  ::   zgifl, zgjfl, zgkfl             ! position of floats, index on  
    6160      !                                                                         ! velocity mesh. 
    62       REAL(wp) , POINTER, DIMENSION ( : )  ::    ztxfl, ztyfl, ztzfl            ! time for a float to quit the mesh 
     61      REAL(wp) , DIMENSION ( jpnfl )  ::    ztxfl, ztyfl, ztzfl            ! time for a float to quit the mesh 
    6362      !                                                                         ! across one of the face x,y and z  
    64       REAL(wp) , POINTER, DIMENSION ( : )  ::    zttfl                          ! time for a float to quit the mesh  
    65       REAL(wp) , POINTER, DIMENSION ( : )  ::    zagefl                         ! time during which, trajectorie of  
     63      REAL(wp) , DIMENSION ( jpnfl )  ::    zttfl                          ! time for a float to quit the mesh  
     64      REAL(wp) , DIMENSION ( jpnfl )  ::    zagefl                         ! time during which, trajectorie of  
    6665      !                                                                         ! the float has been computed 
    67       REAL(wp) , POINTER, DIMENSION ( : )  ::   zagenewfl                       ! new age of float after calculation  
     66      REAL(wp) , DIMENSION ( jpnfl )  ::   zagenewfl                       ! new age of float after calculation  
    6867      !                                                                         ! of new position 
    69       REAL(wp) , POINTER, DIMENSION ( : )  ::   zufl, zvfl, zwfl                ! interpolated vel. at float position 
    70       REAL(wp) , POINTER, DIMENSION ( : )  ::   zudfl, zvdfl, zwdfl             ! velocity diff input/output of mesh 
    71       REAL(wp) , POINTER, DIMENSION ( : )  ::   zgidfl, zgjdfl, zgkdfl          ! direction index of float 
     68      REAL(wp) , DIMENSION ( jpnfl )  ::   zufl, zvfl, zwfl                ! interpolated vel. at float position 
     69      REAL(wp) , DIMENSION ( jpnfl )  ::   zudfl, zvdfl, zwdfl             ! velocity diff input/output of mesh 
     70      REAL(wp) , DIMENSION ( jpnfl )  ::   zgidfl, zgjdfl, zgkdfl          ! direction index of float 
    7271      !!--------------------------------------------------------------------- 
    73       CALL wrk_alloc( jpnfl , iil   , ijl   , ikl   , iiloc  ,  ijloc           ) 
    74       CALL wrk_alloc( jpnfl , iiinfl, ijinfl, ikinfl, iioutfl, ijoutfl, ikoutfl ) 
    75       CALL wrk_alloc( jpnfl , zgifl , zgjfl , zgkfl , ztxfl  , ztyfl  , ztzfl   , zttfl , zagefl, zagenewfl)  
    76       CALL wrk_alloc( jpnfl , zufl  , zvfl  , zwfl  , zudfl  , zvdfl  , zwdfl   , zgidfl, zgjdfl, zgkdfl   ) 
    7772 
    7873      IF( kt == nit000 ) THEN 
     
    371366      ENDIF 
    372367      ! 
    373       CALL wrk_dealloc( jpnfl , iil   , ijl   , ikl   , iiloc  ,  ijloc           ) 
    374       CALL wrk_dealloc( jpnfl , iiinfl, ijinfl, ikinfl, iioutfl, ijoutfl, ikoutfl ) 
    375       CALL wrk_dealloc( jpnfl , zgifl , zgjfl , zgkfl , ztxfl  , ztyfl  , ztzfl   , zttfl , zagefl, zagenewfl)  
    376       CALL wrk_dealloc( jpnfl , zufl  , zvfl  , zwfl  , zudfl  , zvdfl  , zwdfl   , zgidfl, zgjdfl, zgkdfl   ) 
    377368      ! 
    378369   END SUBROUTINE flo_blk 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/FLO/flowri.F90

    r6140 r9125  
    3434   CHARACTER (len=80)  :: clname             ! netcdf output filename 
    3535 
    36    ! Following are only workspace arrays but shape is not (jpi,jpj) and 
    37    ! therefore make them module arrays rather than replacing with wrk_nemo 
    38    ! member arrays. 
    3936   REAL(wp), ALLOCATABLE, DIMENSION(:) ::   zlon , zlat, zdep   ! 2D workspace 
    4037   REAL(wp), ALLOCATABLE, DIMENSION(:) ::   ztem , zsal, zrho   ! 2D workspace 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r9019 r9125  
    1313   USE in_out_manager   ! I/O manager 
    1414   USE lib_mpp          ! distributed memory computing 
    15    USE wrk_nemo         ! work arrays 
    1615 
    1716   IMPLICIT NONE 
     
    9493      INTEGER ::   overlap, jn, sind, eind, kdir,j_id 
    9594      REAL(wp) :: zsum1, zsum2, zvctl1, zvctl2 
    96       REAL(wp), POINTER, DIMENSION(:,:)   :: ztab2d_1, ztab2d_2 
    97       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmask1, zmask2, ztab3d_1, ztab3d_2 
    98       !!---------------------------------------------------------------------- 
    99  
    100       CALL wrk_alloc( jpi,jpj, ztab2d_1, ztab2d_2 ) 
    101       CALL wrk_alloc( jpi,jpj,jpk, zmask1, zmask2, ztab3d_1, ztab3d_2 ) 
     95      REAL(wp), DIMENSION(jpi,jpj)     :: ztab2d_1, ztab2d_2 
     96      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask1, zmask2, ztab3d_1, ztab3d_2 
     97      !!---------------------------------------------------------------------- 
    10298 
    10399      ! Arrays, scalars initialization  
     
    207203 
    208204      ENDDO 
    209  
    210       CALL wrk_dealloc( jpi,jpj, ztab2d_1, ztab2d_2 ) 
    211       CALL wrk_dealloc( jpi,jpj,jpk, zmask1, zmask2, ztab3d_1, ztab3d_2 ) 
    212205      ! 
    213206   END SUBROUTINE prt_ctl 
     
    425418         nrecil, nrecjl, nldil, nleil, nldjl, nlejl 
    426419 
    427       INTEGER, POINTER, DIMENSION(:,:) ::   iimpptl, ijmpptl, ilcitl, ilcjtl   ! workspace 
     420      INTEGER, DIMENSION(jpi,jpj) ::   iimpptl, ijmpptl, ilcitl, ilcjtl   ! workspace 
    428421      REAL(wp) ::   zidom, zjdom            ! temporary scalars 
    429422      !!---------------------------------------------------------------------- 
    430423 
    431424      ! 
    432       CALL wrk_alloc( isplt, jsplt, ilcitl, ilcjtl, iimpptl, ijmpptl ) 
    433425      ! 
    434426      !  1. Dimension arrays for subdomains 
     
    578570      ! 
    579571      ! 
    580       CALL wrk_dealloc( isplt, jsplt, ilcitl, ilcjtl, iimpptl, ijmpptl ) 
    581       ! 
    582572      ! 
    583573   END SUBROUTINE sub_dom 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r9069 r9125  
    5959   USE lbcnfd         ! north fold treatment 
    6060   USE in_out_manager ! I/O manager 
    61    USE wrk_nemo       ! work arrays 
    6261 
    6362   IMPLICIT NONE 
     
    10331032      !!---------------------------------------------------------------------- 
    10341033      ! 
    1035       ! Since this is just an init routine and these arrays are of length jpnij 
    1036       ! then don't use wrk_nemo module - just allocate and deallocate. 
    10371034      ALLOCATE( kice(jpnij), zwork(jpnij), STAT=ierr ) 
    10381035      IF( ierr /= 0 ) THEN 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r9041 r9125  
    1414   !!   fin_date     : Compute the final date YYYYMMDD.HHMMSS 
    1515   !!---------------------------------------------------------------------- 
    16    USE wrk_nemo                 ! Memory Allocation 
    1716   USE par_kind                 ! Precision variables 
    1817   USE in_out_manager           ! I/O manager 
     
    159158      REAL(dp) :: rn_dobsini     ! Obs window start date YYYYMMDD.HHMMSS 
    160159      REAL(dp) :: rn_dobsend     ! Obs window end date   YYYYMMDD.HHMMSS 
    161       REAL(wp), POINTER, DIMENSION(:,:) :: & 
     160      REAL(wp), DIMENSION(jpi,jpj) :: & 
    162161         & zglam1, &             ! Model longitudes for profile variable 1 
    163162         & zglam2                ! Model longitudes for profile variable 2 
    164       REAL(wp), POINTER, DIMENSION(:,:) :: & 
     163      REAL(wp), DIMENSION(jpi,jpj) :: & 
    165164         & zgphi1, &             ! Model latitudes for profile variable 1 
    166165         & zgphi2                ! Model latitudes for profile variable 2 
    167       REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
     166      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    168167         & zmask1, &             ! Model land/sea mask associated with variable 1 
    169168         & zmask2                ! Model land/sea mask associated with variable 2 
     
    194193 
    195194      INTEGER :: jnumsstbias 
    196       CALL wrk_alloc( jpi, jpj, zglam1 ) 
    197       CALL wrk_alloc( jpi, jpj, zglam2 ) 
    198       CALL wrk_alloc( jpi, jpj, zgphi1 ) 
    199       CALL wrk_alloc( jpi, jpj, zgphi2 ) 
    200       CALL wrk_alloc( jpi, jpj, jpk, zmask1 ) 
    201       CALL wrk_alloc( jpi, jpj, jpk, zmask2 ) 
    202195 
    203196      !----------------------------------------------------------------------- 
     
    513506      ENDIF 
    514507 
    515       CALL wrk_dealloc( jpi, jpj, zglam1 ) 
    516       CALL wrk_dealloc( jpi, jpj, zglam2 ) 
    517       CALL wrk_dealloc( jpi, jpj, zgphi1 ) 
    518       CALL wrk_dealloc( jpi, jpj, zgphi2 ) 
    519       CALL wrk_dealloc( jpi, jpj, jpk, zmask1 ) 
    520       CALL wrk_dealloc( jpi, jpj, jpk, zmask2 ) 
    521  
    522508   END SUBROUTINE dia_obs_init 
    523509 
     
    567553      INTEGER :: jvar              ! Variable number 
    568554      INTEGER :: ji, jj            ! Loop counters 
    569       REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
     555      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    570556         & zprofvar1, &            ! Model values for 1st variable in a prof ob 
    571557         & zprofvar2               ! Model values for 2nd variable in a prof ob 
    572       REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
     558      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    573559         & zprofmask1, &           ! Mask associated with zprofvar1 
    574560         & zprofmask2              ! Mask associated with zprofvar2 
    575       REAL(wp), POINTER, DIMENSION(:,:) :: & 
     561      REAL(wp), DIMENSION(jpi,jpj) :: & 
    576562         & zsurfvar, &             ! Model values equivalent to surface ob. 
    577563         & zsurfmask               ! Mask associated with surface variable 
    578       REAL(wp), POINTER, DIMENSION(:,:) :: & 
     564      REAL(wp), DIMENSION(jpi,jpj) :: & 
    579565         & zglam1,    &            ! Model longitudes for prof variable 1 
    580566         & zglam2,    &            ! Model longitudes for prof variable 2 
     
    582568         & zgphi2                  ! Model latitudes for prof variable 2 
    583569 
    584       !Allocate local work arrays 
    585       CALL wrk_alloc( jpi, jpj, jpk, zprofvar1 ) 
    586       CALL wrk_alloc( jpi, jpj, jpk, zprofvar2 ) 
    587       CALL wrk_alloc( jpi, jpj, jpk, zprofmask1 ) 
    588       CALL wrk_alloc( jpi, jpj, jpk, zprofmask2 ) 
    589       CALL wrk_alloc( jpi, jpj, zsurfvar ) 
    590       CALL wrk_alloc( jpi, jpj, zsurfmask ) 
    591       CALL wrk_alloc( jpi, jpj, zglam1 ) 
    592       CALL wrk_alloc( jpi, jpj, zglam2 ) 
    593       CALL wrk_alloc( jpi, jpj, zgphi1 ) 
    594       CALL wrk_alloc( jpi, jpj, zgphi2 ) 
    595570      !----------------------------------------------------------------------- 
    596571 
     
    692667      ENDIF 
    693668 
    694       CALL wrk_dealloc( jpi, jpj, jpk, zprofvar1 ) 
    695       CALL wrk_dealloc( jpi, jpj, jpk, zprofvar2 ) 
    696       CALL wrk_dealloc( jpi, jpj, jpk, zprofmask1 ) 
    697       CALL wrk_dealloc( jpi, jpj, jpk, zprofmask2 ) 
    698       CALL wrk_dealloc( jpi, jpj, zsurfvar ) 
    699       CALL wrk_dealloc( jpi, jpj, zsurfmask ) 
    700       CALL wrk_dealloc( jpi, jpj, zglam1 ) 
    701       CALL wrk_dealloc( jpi, jpj, zglam2 ) 
    702       CALL wrk_dealloc( jpi, jpj, zgphi1 ) 
    703       CALL wrk_dealloc( jpi, jpj, zgphi2 ) 
    704  
    705669   END SUBROUTINE dia_obs 
    706670 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/OBS/obs_inter_sup.F90

    r6140 r9125  
    1010   !!--------------------------------------------------------------------- 
    1111   !! * Modules used 
    12    USE wrk_nemo        ! Memory Allocation 
    1312   USE par_kind        ! Precision variables 
    1413   USE dom_oce         ! Domain variables 
     
    125124         & pgval            ! Stencil at each point 
    126125      !! * Local declarations 
    127       REAL(KIND=wp), POINTER, DIMENSION(:,:,:) ::   zval 
     126      REAL(KIND=wp), DIMENSION(jpi,jpj,1) ::   zval 
    128127      REAL(KIND=wp), DIMENSION(kptsi,kptsj,1,kobs) ::& 
    129128         & zgval  
    130  
    131       ! Check workspace array and set-up pointer 
    132       CALL wrk_alloc(jpi,jpj,1,zval)  
    133129 
    134130      ! Set up local "3D" buffer 
     
    152148 
    153149      pgval(:,:,:) = zgval(:,:,1,:) 
    154  
    155       ! 'Release' workspace array back to pool 
    156       CALL wrk_dealloc(jpi,jpj,1,zval)  
    157150 
    158151   END SUBROUTINE obs_int_comm_2d 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_altbias.F90

    r6140 r9125  
    3333   USE obs_utils               ! Various observation tools 
    3434   USE obs_inter_sup 
    35    USE wrk_nemo                ! Memory Allocation 
    3635 
    3736   IMPLICIT NONE 
     
    9998         & zglam, & 
    10099         & zgphi 
    101       REAL(wp), POINTER, DIMENSION(:,:) ::   z_altbias 
     100      REAL(wp), DIMENSION(jpi,jpj) ::   z_altbias 
    102101      REAL(wp) :: zlam 
    103102      REAL(wp) :: zphi 
     
    106105         & igrdj 
    107106      INTEGER :: numaltbias 
    108  
    109       CALL wrk_alloc(jpi,jpj,z_altbias)  
    110107 
    111108      IF(lwp)WRITE(numout,*)  
     
    201198         & ) 
    202199          
    203       CALL wrk_dealloc(jpi,jpj,z_altbias)  
    204  
    205200   END SUBROUTINE obs_rea_altbias 
    206201 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/OBS/obs_readmdt.F90

    r9023 r9125  
    1212   !!   obs_offset_mdt : Remove the offset between the model MDT and the used one 
    1313   !!---------------------------------------------------------------------- 
    14    USE wrk_nemo         ! Memory Allocation 
    1514   USE par_kind         ! Precision variables 
    1615   USE par_oce          ! Domain parameters 
     
    7675      INTEGER , DIMENSION(:,:,:), ALLOCATABLE ::   igrdi, igrdj 
    7776      ! 
    78       REAL(wp), POINTER, DIMENSION(:,:) ::  z_mdt, mdtmask 
     77      REAL(wp), DIMENSION(jpi,jpj) ::  z_mdt, mdtmask 
    7978          
    8079      REAL(wp) :: zlam, zphi, zfill, zinfill    ! local scalar 
    8180      !!---------------------------------------------------------------------- 
    82  
    83       CALL wrk_alloc(jpi,jpj,z_mdt,mdtmask)  
    8481 
    8582      IF(lwp)WRITE(numout,*)  
     
    167164         & ) 
    168165 
    169       CALL wrk_dealloc(jpi,jpj,z_mdt,mdtmask)  
    170166      IF(lwp)WRITE(numout,*) ' ------------- ' 
    171167      ! 
     
    192188      INTEGER  :: ji, jj 
    193189      REAL(wp) :: zdxdy, zarea, zeta1, zeta2, zcorr_mdt, zcorr_bcketa, zcorr     ! local scalar 
    194       REAL(wp), POINTER, DIMENSION(:,:) :: zpromsk 
     190      REAL(wp), DIMENSION(jpi,jpj) :: zpromsk 
    195191      CHARACTER(LEN=14), PARAMETER ::   cpname = 'obs_offset_mdt' 
    196192      !!---------------------------------------------------------------------- 
    197  
    198       CALL wrk_alloc( jpi,jpj, zpromsk ) 
    199193 
    200194      !  Initialize the local mask, for domain projection  
     
    258252      IF ( nn_msshc == 2 ) WRITE(numout,*) '           User defined MSSH correction'  
    259253 
    260       CALL wrk_dealloc( jpi,jpj, zpromsk ) 
    261254      ! 
    262255   END SUBROUTINE obs_offset_mdt 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/OBS/obs_rot_vel.F90

    r6140 r9125  
    99   !!---------------------------------------------------------------------- 
    1010   !! * Modules used    
    11    USE wrk_nemo                 ! Memory Allocation 
    1211   USE par_kind                 ! Precision variables 
    1312   USE par_oce                  ! Ocean parameters 
     
    8382      REAL(wp) :: zcos 
    8483      REAL(wp), DIMENSION(1) :: zobsmask 
    85       REAL(wp), POINTER, DIMENSION(:,:) :: zsingu,zcosgu,zsingv,zcosgv 
     84      REAL(wp), DIMENSION(jpi,jpj) :: zsingu,zcosgu,zsingv,zcosgv 
    8685      INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: & 
    8786         & igrdiu, & 
     
    9291      INTEGER :: jk 
    9392 
    94       CALL wrk_alloc(jpi,jpj,zsingu,zcosgu,zsingv,zcosgv)  
    9593 
    9694      !----------------------------------------------------------------------- 
     
    226224         & ) 
    227225 
    228       CALL wrk_dealloc(jpi,jpj,zsingu,zcosgu,zsingv,zcosgv)  
    229  
    230226   END SUBROUTINE obs_rotvel 
    231227 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/cyclone.F90

    r7646 r9125  
    2121   USE in_out_manager  ! I/O manager 
    2222   USE geo2ocean       ! tools for projection on ORCA grid 
    23    USE wrk_nemo        ! work arrays 
    2423   USE lib_mpp        
    2524 
     
    8180      REAL(wp) ::   zvmax               ! timestep interpolated vmax 
    8281      REAL(wp) ::   zrlon, zrlat        ! temporary  
    83       REAL(wp), DIMENSION(:,:), POINTER ::   zwnd_x, zwnd_y   ! zonal and meridional components of the wind 
     82      REAL(wp), DIMENSION(jpi,jpj) ::   zwnd_x, zwnd_y   ! zonal and meridional components of the wind 
    8483      REAL(wp), DIMENSION(14,5)    ::   ztct                ! tropical cyclone track data at kt 
    8584      ! 
     
    8887      TYPE(FLD_N) ::   sn_tc                   ! informations about the fields to be read 
    8988      !!-------------------------------------------------------------------- 
    90  
    91       CALL wrk_alloc( jpi,jpj, zwnd_x, zwnd_y ) 
    9289 
    9390      !                                         ! ====================== ! 
     
    271268      CALL rot_rep ( zwnd_x, zwnd_y, 'T', 'en->j', pwnd_j ) !rotation of components on ORCA grid 
    272269 
    273       CALL wrk_dealloc( jpi,jpj, zwnd_x, zwnd_y ) 
    274  
    275270   END SUBROUTINE wnd_cyc 
    276271 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r9019 r9125  
    3737   USE ioipsl  , ONLY : ymds2ju, ju2ymds   ! for calendar 
    3838   USE lib_mpp        ! MPP library 
    39    USE wrk_nemo       ! work arrays 
    4039   USE lbclnk         ! ocean lateral boundary conditions (C1D case) 
    4140    
     
    11441143      INTEGER ::   ill             ! character length 
    11451144      INTEGER ::   iv              ! indice of V component 
    1146       CHARACTER (LEN=100)               ::   clcomp       ! dummy weight name 
    1147       REAL(wp), POINTER, DIMENSION(:,:) ::   utmp, vtmp   ! temporary arrays for vector rotation 
    1148       !!--------------------------------------------------------------------- 
    1149       ! 
    1150       CALL wrk_alloc( jpi,jpj,   utmp, vtmp ) 
     1145      CHARACTER (LEN=100)          ::   clcomp       ! dummy weight name 
     1146      REAL(wp), DIMENSION(jpi,jpj) ::   utmp, vtmp   ! temporary arrays for vector rotation 
     1147      !!--------------------------------------------------------------------- 
    11511148      ! 
    11521149      !! (sga: following code should be modified so that pairs arent searched for each time 
     
    11851182       END DO 
    11861183      ! 
    1187       CALL wrk_dealloc( jpi,jpj,   utmp, vtmp ) 
    1188       ! 
    11891184   END SUBROUTINE fld_rot 
    11901185 
     
    14381433      CHARACTER (len=5) ::   aname   ! 
    14391434      INTEGER , DIMENSION(:), ALLOCATABLE ::   ddims 
    1440       INTEGER , POINTER, DIMENSION(:,:) ::   data_src 
    1441       REAL(wp), POINTER, DIMENSION(:,:) ::   data_tmp 
     1435      INTEGER,  DIMENSION(jpi,jpj) ::   data_src 
     1436      REAL(wp), DIMENSION(jpi,jpj) ::   data_tmp 
    14421437      !!---------------------------------------------------------------------- 
    1443       ! 
    1444       CALL wrk_alloc( jpi,jpj,   data_src )   ! integer 
    1445       CALL wrk_alloc( jpi,jpj,   data_tmp ) 
    14461438      ! 
    14471439      IF( nxt_wgt > tot_wgts ) THEN 
     
    15611553 
    15621554      DEALLOCATE (ddims ) 
    1563  
    1564       CALL wrk_dealloc( jpi,jpj, data_src )   ! integer 
    1565       CALL wrk_dealloc( jpi,jpj, data_tmp ) 
    15661555      ! 
    15671556   END SUBROUTINE fld_weight 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/ocealb.F90

    r9019 r9125  
    1212   USE in_out_manager ! I/O manager 
    1313   USE lib_mpp        ! MPP library 
    14    USE wrk_nemo       ! work arrays 
    1514   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    1615 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare.F90

    r9124 r9125  
    3939   USE iom            ! I/O manager library 
    4040   USE lib_mpp        ! distribued memory computing library 
    41    USE wrk_nemo       ! work arrays 
    4241   USE prtctl         ! Print control 
    4342   USE lib_fortran    ! to use key_nosignedzero 
     
    110109      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    111110 
    112       REAL(wp), DIMENSION(:,:), POINTER ::  & 
     111      REAL(wp), DIMENSION(jpi,jpj) ::  & 
    113112         &  u_star, t_star, q_star, & 
    114113         &  dt_zu, dq_zu,    & 
    115114         &  znu_a,           & !: Nu_air, Viscosity of air 
    116115         &  z0, z0t 
    117       REAL(wp), DIMENSION(:,:), POINTER ::   zeta_u        ! stability parameter at height zu 
    118       REAL(wp), DIMENSION(:,:), POINTER ::   zeta_t        ! stability parameter at height zt 
    119       REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
     116      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
     117      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
     118      REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zeta_t        ! stability parameter at height zt 
    120119      !!---------------------------------------------------------------------- 
    121120      ! 
    122       CALL wrk_alloc( jpi,jpj,   u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 
    123       CALL wrk_alloc( jpi,jpj,   znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    124  
    125121      l_zt_equal_zu = .FALSE. 
    126122      IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE.    ! testing "zu == zt" is risky with double precision 
    127123 
    128       IF( .NOT. l_zt_equal_zu )   CALL wrk_alloc( jpi,jpj, zeta_t ) 
     124      IF( .NOT. l_zt_equal_zu )  ALLOCATE( zeta_t(jpi,jpj) ) 
    129125 
    130126      !! First guess of temperature and humidity at height zu: 
     
    248244      Cen = Chn 
    249245      ! 
    250       CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu ) 
    251       CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    252       IF( .NOT. l_zt_equal_zu ) CALL wrk_dealloc( jpi,jpj, zeta_t ) 
     246      IF( .NOT. l_zt_equal_zu ) DEALLOCATE( zeta_t ) 
    253247      ! 
    254248   END SUBROUTINE turb_coare 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare3p5.F90

    r9124 r9125  
    3838   USE iom             ! I/O manager library 
    3939   USE lib_mpp         ! distribued memory computing library 
    40    USE wrk_nemo        ! work arrays 
    4140   USE in_out_manager  ! I/O manager 
    4241   USE prtctl          ! Print control 
     
    111110      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    112111      ! 
    113       REAL(wp), DIMENSION(:,:), POINTER ::  & 
     112      REAL(wp), DIMENSION(jpi,jpj) ::  & 
    114113         &  u_star, t_star, q_star, & 
    115114         &  dt_zu, dq_zu,    & 
    116115         &  znu_a,           & !: Nu_air, Viscosity of air 
    117116         &  z0, z0t 
    118       REAL(wp), DIMENSION(:,:), POINTER ::   zeta_u        ! stability parameter at height zu 
    119       REAL(wp), DIMENSION(:,:), POINTER ::   zeta_t        ! stability parameter at height zt 
    120       REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
    121       !!---------------------------------------------------------------------------------- 
    122       ! 
    123       CALL wrk_alloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 
    124       CALL wrk_alloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    125  
     117      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
     118      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
     119      REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zeta_t        ! stability parameter at height zt 
     120      !!---------------------------------------------------------------------------------- 
     121      ! 
    126122      l_zt_equal_zu = .FALSE. 
    127123      IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE.    ! testing "zu == zt" is risky with double precision 
    128124 
    129       IF( .NOT. l_zt_equal_zu )   CALL wrk_alloc( jpi,jpj, zeta_t ) 
     125      IF( .NOT. l_zt_equal_zu )   ALLOCATE( zeta_t(jpi,jpj) ) 
    130126 
    131127      !! First guess of temperature and humidity at height zu: 
     
    256252      Cen = Chn 
    257253      ! 
    258       CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu ) 
    259       CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    260       IF( .NOT. l_zt_equal_zu ) CALL wrk_dealloc( jpi,jpj, zeta_t ) 
     254      IF( .NOT. l_zt_equal_zu ) DEALLOCATE( zeta_t ) 
    261255      ! 
    262256   END SUBROUTINE turb_coare3p5 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_ecmwf.F90

    r9124 r9125  
    3232   USE iom             ! I/O manager library 
    3333   USE lib_mpp         ! distribued memory computing library 
    34    USE wrk_nemo        ! work arrays 
    3534   USE in_out_manager  ! I/O manager 
    3635   USE prtctl          ! Print control 
     
    118117      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    119118      ! 
    120       REAL(wp), DIMENSION(:,:), POINTER ::   u_star, t_star, q_star,   & 
     119      REAL(wp), DIMENSION(jpi,jpj) ::   u_star, t_star, q_star,   & 
    121120         &  dt_zu, dq_zu,    & 
    122121         &  znu_a,           & !: Nu_air, Viscosity of air 
    123122         &  Linv,            & !: 1/L (inverse of Monin Obukhov length... 
    124123         &  z0, z0t, z0q 
    125       REAL(wp), DIMENSION(:,:), POINTER ::   func_m, func_h 
    126       REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
    127       !!---------------------------------------------------------------------------------- 
    128       ! 
    129       CALL wrk_alloc( jpi,jpj,   u_star, t_star, q_star, func_m, func_h, dt_zu, dq_zu, Linv ) 
    130       CALL wrk_alloc( jpi,jpj,   znu_a, z0, z0t, z0q, ztmp0, ztmp1, ztmp2 ) 
     124      REAL(wp), DIMENSION(jpi,jpj) ::   func_m, func_h 
     125      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
     126      !!---------------------------------------------------------------------------------- 
    131127      ! 
    132128      ! Identical first gess as in COARE, with IFS parameter values though 
     
    286282      Cen = vkarmn*vkarmn / (log(ztmp1/z0q)*log(ztmp1/z0q)) 
    287283 
    288       CALL wrk_dealloc( jpi,jpj,   u_star, t_star, q_star, func_m, func_h, dt_zu, dq_zu, Linv ) 
    289       CALL wrk_dealloc( jpi,jpj,   znu_a, z0, z0t, z0q, ztmp0, ztmp1, ztmp2 ) 
    290       ! 
    291284   END SUBROUTINE TURB_ECMWF 
    292285 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_ncar.F90

    r9124 r9125  
    3434   USE iom             ! I/O manager library 
    3535   USE lib_mpp         ! distribued memory computing library 
    36    USE wrk_nemo        ! work arrays 
    3736   USE in_out_manager  ! I/O manager 
    3837   USE prtctl          ! Print control 
     
    118117      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    119118      ! 
    120       REAL(wp), DIMENSION(:,:), POINTER ::   Cx_n10        ! 10m neutral latent/sensible coefficient 
    121       REAL(wp), DIMENSION(:,:), POINTER ::   sqrt_Cd_n10   ! root square of Cd_n10 
    122       REAL(wp), DIMENSION(:,:), POINTER ::   zeta_u        ! stability parameter at height zu 
    123       REAL(wp), DIMENSION(:,:), POINTER ::   zpsi_h_u 
    124       REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
    125       REAL(wp), DIMENSION(:,:), POINTER ::   stab          ! stability test integer 
    126       !!---------------------------------------------------------------------------------- 
    127       ! 
    128       CALL wrk_alloc( jpi,jpj,   Cx_n10, sqrt_Cd_n10, zeta_u, stab ) 
    129       CALL wrk_alloc( jpi,jpj,   zpsi_h_u, ztmp0, ztmp1, ztmp2 ) 
     119      REAL(wp), DIMENSION(jpi,jpj) ::   Cx_n10        ! 10m neutral latent/sensible coefficient 
     120      REAL(wp), DIMENSION(jpi,jpj) ::   sqrt_Cd_n10   ! root square of Cd_n10 
     121      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
     122      REAL(wp), DIMENSION(jpi,jpj) ::   zpsi_h_u 
     123      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
     124      REAL(wp), DIMENSION(jpi,jpj) ::   stab          ! stability test integer 
     125      !!---------------------------------------------------------------------------------- 
    130126      ! 
    131127      l_zt_equal_zu = .FALSE. 
     
    223219      END DO 
    224220      ! 
    225       CALL wrk_dealloc( jpi,jpj,   Cx_n10, sqrt_Cd_n10, zeta_u, stab ) 
    226       CALL wrk_dealloc( jpi,jpj,   zpsi_h_u, ztmp0, ztmp1, ztmp2 ) 
    227       ! 
    228221   END SUBROUTINE turb_ncar 
    229222 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90

    r9124 r9125  
    2525   USE in_out_manager ! I/O manager 
    2626   USE lib_mpp        ! distribued memory computing library 
     27   USE timing         ! Timing 
    2728   USE lbclnk         ! ocean lateral boundary conditions 
    2829   USE lib_fortran    !  
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r9124 r9125  
    1818   USE lib_mpp         ! distributed memory computing library 
    1919   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    20    USE wrk_nemo        ! work arrays 
    2120   USE daymod          ! calendar 
    2221   USE fldread         ! read input fields 
     
    155154      !!--------------------------------------------------------------------- 
    156155      INTEGER, INTENT( in  ) ::   ksbc                ! surface forcing type 
    157       REAL(wp), DIMENSION(:,:), POINTER :: ztmp1, ztmp2 
     156      REAL(wp), DIMENSION(jpi,jpj) :: ztmp1, ztmp2 
    158157      REAL(wp) ::   zcoefu, zcoefv, zcoeff            ! local scalar 
    159158      INTEGER  ::   ji, jj, jl, jk                    ! dummy loop indices 
    160159      !!--------------------------------------------------------------------- 
    161       ! 
    162       CALL wrk_alloc( jpi,jpj, ztmp1, ztmp2 ) 
    163160      ! 
    164161      IF(lwp) WRITE(numout,*)'cice_sbc_init' 
     
    272269      ENDIF 
    273270      ! 
    274       CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 
    275       ! 
    276271   END SUBROUTINE cice_sbc_init 
    277272 
     
    286281      ! 
    287282      INTEGER  ::   ji, jj, jl                   ! dummy loop indices       
    288       REAL(wp), DIMENSION(:,:), POINTER :: ztmp, zpice 
    289       REAL(wp), DIMENSION(:,:,:), POINTER :: ztmpn 
     283      REAL(wp), DIMENSION(jpi,jpj) :: ztmp, zpice 
     284      REAL(wp), DIMENSION(jpi,jpj,ncat) :: ztmpn 
    290285      REAL(wp) ::   zintb, zintn  ! dummy argument 
    291286      !!--------------------------------------------------------------------- 
    292287      ! 
    293       CALL wrk_alloc( jpi,jpj, ztmp, zpice ) 
    294       CALL wrk_alloc( jpi,jpj,ncat, ztmpn ) 
    295  
    296288      IF( kt == nit000 )  THEN 
    297289         IF(lwp) WRITE(numout,*)'cice_sbc_in' 
     
    492484      END DO 
    493485      CALL nemo2cice(ztmp,ss_tlty,'F', -1. ) 
    494  
    495       CALL wrk_dealloc( jpi,jpj, ztmp, zpice ) 
    496       CALL wrk_dealloc( jpi,jpj,ncat, ztmpn ) 
    497486      ! 
    498487   END SUBROUTINE cice_sbc_in 
     
    508497       
    509498      INTEGER  ::   ji, jj, jl                 ! dummy loop indices 
    510       REAL(wp), DIMENSION(:,:), POINTER :: ztmp1, ztmp2 
    511       !!--------------------------------------------------------------------- 
    512       ! 
    513       CALL wrk_alloc( jpi,jpj, ztmp1, ztmp2 ) 
    514        
     499      REAL(wp), DIMENSION(jpi,jpj) :: ztmp1, ztmp2 
     500      !!--------------------------------------------------------------------- 
     501      ! 
    515502      IF( kt == nit000 )  THEN 
    516503         IF(lwp) WRITE(numout,*)'cice_sbc_out' 
     
    660647      snwice_mass_b(:,:) = snwice_mass(:,:) 
    661648      snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / dt 
    662  
    663 ! Release work space 
    664  
    665       CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 
    666649      ! 
    667650   END SUBROUTINE cice_sbc_out 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r9023 r9125  
    2727   USE iom            ! I/O module 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! Memory allocation 
    3029 
    3130   IMPLICIT NONE 
     
    106105      INTEGER  ::   z_err = 0 ! dummy integer for error handling 
    107106      !!---------------------------------------------------------------------- 
    108       REAL(wp), DIMENSION(:,:), POINTER       ::   ztfrz   ! freezing point used for temperature correction 
    109       ! 
    110       CALL wrk_alloc( jpi,jpj, ztfrz) 
     107      REAL(wp), DIMENSION(jpi,jpj) ::   ztfrz   ! freezing point used for temperature correction 
     108      ! 
    111109      ! 
    112110      !                                            !-------------------! 
     
    169167         CALL iom_rstput( kt, nitrst, numrow, 'rnf_sc_b', rnf_tsc(:,:,jp_sal) ) 
    170168      ENDIF 
    171       ! 
    172       CALL wrk_dealloc( jpi,jpj, ztfrz) 
    173169      ! 
    174170   END SUBROUTINE sbc_rnf 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90

    r9023 r9125  
    1616   USE ioipsl         ! NetCDF IPSL library 
    1717   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    18    USE wrk_nemo       ! 
    1918 
    2019   IMPLICIT NONE 
     
    140139      INTEGER :: inum                 ! Logical unit of input file 
    141140      INTEGER :: ji, jj, itide        ! dummy loop indices 
    142       REAL(wp), POINTER, DIMENSION(:,:) ::   ztr, zti   !: workspace to read in tidal harmonics data  
     141      REAL(wp), DIMENSION(jpi,jpj) ::   ztr, zti   !: workspace to read in tidal harmonics data  
    143142      !!---------------------------------------------------------------------- 
    144143      IF(lwp) THEN 
     
    147146         WRITE(numout,*) '~~~~~~~~~~~~~~ ' 
    148147      ENDIF 
    149       ! 
    150       CALL wrk_alloc( jpi, jpj, zti, ztr ) 
    151148      ! 
    152149      CALL iom_open ( cn_tide_load , inum ) 
     
    166163      CALL iom_close( inum ) 
    167164      ! 
    168       CALL wrk_dealloc( jpi, jpj, zti, ztr ) 
    169       ! 
    170165   END SUBROUTINE tide_init_load 
    171166 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r9117 r9125  
    2727   USE lib_mpp        ! distribued memory computing library 
    2828   USE fldread        ! read input fields 
    29    USE wrk_nemo       ! 
    3029 
    3130   IMPLICIT NONE 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90

    r9101 r9125  
    3737   USE restart         ! for lrst_oce 
    3838   USE lib_mpp         ! MPP library 
    39    USE wrk_nemo        ! Memory allocation 
    4039   USE iom 
    4140 
     
    253252      ! 
    254253      INTEGER ::   ji, jj, jk, isum 
    255       REAL(wp), POINTER, DIMENSION(:,:)  :: zvlmsk  
    256       !!---------------------------------------------------------------------- 
    257  
    258       CALL wrk_alloc( jpi, jpj, zvlmsk )  
     254      REAL(wp), DIMENSION(jpi,jpj)  :: zvlmsk  
     255      !!---------------------------------------------------------------------- 
    259256 
    260257      ! I. Definition of control surface and associated fields 
     
    280277 
    281278      END IF 
    282       ! 
    283       CALL wrk_dealloc( jpi, jpj, zvlmsk )  
    284279      ! 
    285280   END SUBROUTINE trd_mxl_zint 
     
    339334      !                                              ! z(ts)mltot : dT/dt over the anlysis window (including Asselin) 
    340335      !                                              ! z(ts)mlres : residual = dh/dt entrainment term 
    341       REAL(wp), POINTER, DIMENSION(:,:  ) ::  ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf 
    342       REAL(wp), POINTER, DIMENSION(:,:  ) ::  ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2   
    343       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztmltrd2, zsmltrd2   ! only needed for mean diagnostics 
     336      REAL(wp), DIMENSION(jpi,jpj  )  ::  ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf 
     337      REAL(wp), DIMENSION(jpi,jpj  )  ::  ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2   
     338      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztmltrd2, zsmltrd2   ! only needed for mean diagnostics 
    344339      !!---------------------------------------------------------------------- 
    345340   
    346       CALL wrk_alloc( jpi, jpj,         ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf                        ) 
    347       CALL wrk_alloc( jpi, jpj,         ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2 )   
    348       CALL wrk_alloc( jpi, jpj, jpltrd, ztmltrd2, zsmltrd2                                                               ) 
    349  
    350341      ! ====================================================================== 
    351342      ! II. Cumulate the trends over the analysis window 
     
    719710      IF( lrst_oce )   CALL trd_mxl_rst_write( kt )  
    720711 
    721       CALL wrk_dealloc( jpi, jpj,         ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf                        ) 
    722       CALL wrk_dealloc( jpi, jpj,         ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2 )   
    723       CALL wrk_dealloc( jpi, jpj, jpltrd, ztmltrd2, zsmltrd2                                                               ) 
    724712      ! 
    725713   END SUBROUTINE trd_mxl 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRD/trdpen.F90

    r9019 r9125  
    2424   USE iom            ! I/O manager library 
    2525   USE lib_mpp        ! MPP library 
    26    USE wrk_nemo       ! Memory allocation 
    2726 
    2827   IMPLICIT NONE 
     
    7069      ! 
    7170      INTEGER ::   jk                                            ! dummy loop indices 
    72       REAL(wp), POINTER, DIMENSION(:,:)      ::   z2d            ! 2D workspace  
    73       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   zpe            ! 3D workspace  
     71      REAL(wp), ALLOCATABLE, DIMENSION(:,:)      ::   z2d            ! 2D workspace  
     72      REAL(wp), DIMENSION(jpi,jpj,jpk)           ::   zpe            ! 3D workspace  
    7473      !!---------------------------------------------------------------------- 
    7574      ! 
    76       CALL wrk_alloc( jpi, jpj, jpk, zpe ) 
    7775      zpe(:,:,:) = 0._wp 
    7876      ! 
     
    9694      CASE ( jptra_zad  )   ;   CALL iom_put( "petrd_zad", zpe )   ! vertical advection 
    9795                                IF( ln_linssh ) THEN                   ! cst volume : adv flux through z=0 surface 
    98                                    CALL wrk_alloc( jpi, jpj, z2d ) 
     96                                   ALLOCATE( z2d(jpi,jpj) ) 
    9997                                   z2d(:,:) = wn(:,:,1) * ( & 
    10098                                     &   - ( rab_n(:,:,1,jp_tem) + rab_pe(:,:,1,jp_tem) ) * tsn(:,:,1,jp_tem)    & 
     
    102100                                     & ) / e3t_n(:,:,1) 
    103101                                   CALL iom_put( "petrd_sad" , z2d ) 
    104                                    CALL wrk_dealloc( jpi, jpj, z2d ) 
     102                                   DEALLOCATE( z2d ) 
    105103                                ENDIF 
    106104      CASE ( jptra_ldf  )   ;   CALL iom_put( "petrd_ldf" , zpe )   ! lateral  diffusion 
     
    115113      CASE ( jptra_atf  )   ;   CALL iom_put( "petrd_atf" , zpe )   ! asselin time filter (last trend) 
    116114                                !IF( ln_linssh ) THEN                   ! cst volume : ssh term (otherwise include in e3t variation) 
    117                                 !   CALL wrk_alloc( jpi, jpj, z2d ) 
     115                                !   ALLOCATE( z2d(jpi,jpj) ) 
    118116                                !   z2d(:,:) = ( ssha(:,:) - sshb(:,:) )                 & 
    119117                                !      &     * (   dPE_dt(:,:,1) * tsn(:,:,1,jp_tem)    & 
    120118                                !      &         + dPE_ds(:,:,1) * tsn(:,:,1,jp_sal)  ) / ( e3t_n(:,:,1) * pdt ) 
    121119                                !   CALL iom_put( "petrd_sad" , z2d ) 
    122                                 !   CALL wrk_dealloc( jpi, jpj, z2d ) 
     120                                !   DEALLOCATE( z2d ) 
    123121                                !ENDIF 
    124122         ! 
    125123      END SELECT 
    126124      ! 
    127       CALL wrk_dealloc( jpi, jpj, jpk, zpe ) 
    128125      ! 
    129126   END SUBROUTINE trd_pen 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90

    r9097 r9125  
    2828   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2929   USE lib_mpp         ! MPP library 
    30    USE wrk_nemo        ! Memory allocation 
    3130 
    3231   IMPLICIT NONE 
     
    9190      ! 
    9291      INTEGER ::   ji, jj   ! dummy loop indices 
    93       REAL(wp), POINTER, DIMENSION(:,:) ::   ztswu, ztswv    ! 2D workspace  
    94       !!---------------------------------------------------------------------- 
    95  
    96       CALL wrk_alloc( jpi, jpj, ztswu, ztswv ) 
     92      REAL(wp), DIMENSION(jpi,jpj) ::   ztswu, ztswv    ! 2D workspace  
     93      !!---------------------------------------------------------------------- 
    9794 
    9895      SELECT CASE( ktrd )  
     
    122119      END SELECT 
    123120      ! 
    124       CALL wrk_dealloc( jpi, jpj, ztswu, ztswv ) 
    125       ! 
    126121   END SUBROUTINE trd_vor 
    127122 
     
    160155      INTEGER ::   ji, jj       ! dummy loop indices 
    161156      INTEGER ::   ikbu, ikbv   ! local integers 
    162       REAL(wp), POINTER, DIMENSION(:,:) :: zudpvor, zvdpvor  ! total cmulative trends 
    163       !!---------------------------------------------------------------------- 
    164  
    165       ! 
    166       CALL wrk_alloc( jpi, jpj, zudpvor, zvdpvor )                                     ! Memory allocation 
     157      REAL(wp), DIMENSION(jpi,jpj) :: zudpvor, zvdpvor  ! total cmulative trends 
     158      !!---------------------------------------------------------------------- 
     159 
    167160      ! 
    168161 
     
    210203         CALL FLUSH(numout) 
    211204      ENDIF 
    212       ! 
    213       CALL wrk_dealloc( jpi, jpj, zudpvor, zvdpvor )                                    
    214205      ! 
    215206   END SUBROUTINE trd_vor_zint_2d 
     
    249240      ! 
    250241      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    251       REAL(wp), POINTER, DIMENSION(:,:) :: zubet  , zvbet    ! Beta.V    
    252       REAL(wp), POINTER, DIMENSION(:,:) :: zudpvor, zvdpvor  ! total cmulative trends 
     242      REAL(wp), DIMENSION(jpi,jpj) :: zubet  , zvbet    ! Beta.V    
     243      REAL(wp), DIMENSION(jpi,jpj) :: zudpvor, zvdpvor  ! total cmulative trends 
    253244      !!---------------------------------------------------------------------- 
    254245      
    255       CALL wrk_alloc( jpi,jpj, zubet, zvbet, zudpvor, zvdpvor )                                    
    256  
    257246      ! Initialization 
    258247      zubet  (:,:) = 0._wp 
     
    306295      ENDIF 
    307296      ! 
    308       CALL wrk_dealloc( jpi,jpj, zubet, zvbet, zudpvor, zvdpvor )                                    
    309       ! 
    310297   END SUBROUTINE trd_vor_zint_3d 
    311298 
     
    323310      INTEGER  ::   it, itmod        ! local integers 
    324311      REAL(wp) ::   zmean            ! local scalars 
    325       REAL(wp), POINTER, DIMENSION(:,:) :: zun, zvn 
    326       !!---------------------------------------------------------------------- 
    327  
    328       CALL wrk_alloc( jpi, jpj, zun, zvn )                                    
     312      REAL(wp), DIMENSION(jpi,jpj) :: zun, zvn 
     313      !!---------------------------------------------------------------------- 
    329314 
    330315      !  ================= 
     
    458443      IF( kt == nitend )   CALL histclo( nidvor ) 
    459444      ! 
    460       CALL wrk_dealloc( jpi, jpj, zun, zvn )                                    
    461       ! 
    462445   END SUBROUTINE trd_vor_iom 
    463446 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/USR/usrdef_zgr.F90

    r9124 r9125  
    2323   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2424   USE lib_mpp        ! distributed memory computing library 
    25    USE wrk_nemo       ! Memory allocation 
    2625 
    2726   IMPLICIT NONE 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfiwm.F90

    r9104 r9125  
    2727   USE iom            ! I/O Manager 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! work arrays 
    3029   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    3130 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/SAS_SRC/diawri.F90

    r9124 r9125  
    4343   USE lib_mpp         ! MPP library 
    4444   USE timing          ! preformance summary 
    45    USE wrk_nemo        ! working array 
    4645 
    4746   IMPLICIT NONE 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/C14/trcatm_c14.F90

    r9124 r9125  
    4545      REAL(wp) ::   yn20 =  20.     ! 20 degrees north 
    4646      REAL(wp) ::   yn40 =  40.     ! 40 degrees north 
    47       REAL(wp), POINTER, DIMENSION(:)   :: zco2, zyrco2  ! temporary arrays for swap 
     47      REAL(wp), ALLOCATABLE, DIMENSION(:)   :: zco2, zyrco2  ! temporary arrays for swap 
    4848      ! 
    4949      !!---------------------------------------------------------------------- 
     
    7878      ! 
    7979         IF(kc14typ==2) THEN 
    80             CALL wrk_alloc( nrecco2,zco2) 
    81             CALL wrk_alloc( nrecco2,zyrco2) 
     80            ALLOCATE( zco2(nrecco2), zyrco2(nrecco2) ) 
    8281            zco2(:)=spco2(:) 
    8382            zyrco2(:)=tyrco2(:) 
     
    8887               tyrco2(izco2)=1950._wp-zyrco2(jn)         ! BP to AD dates 
    8988            END DO 
    90             CALL wrk_dealloc(nrecco2,zco2) 
    91             CALL wrk_dealloc(nrecco2,zyrco2) 
     89            DEALLOCATE( zco2,zyrco2 ) 
    9290         ENDIF 
    9391      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/C14/trcwri_c14.F90

    r7068 r9125  
    3636      INTEGER              :: ji,jj,jk,jn   ! dummy loop indexes 
    3737      REAL(wp)             :: zage,zarea,ztemp   ! temporary 
    38       REAL(wp), POINTER, DIMENSION(:,:)   :: zres, z2d ! temporary storage 2D 
    39       REAL(wp), POINTER, DIMENSION(:,:,:) :: z3d , zz3d ! temporary storage 3D 
     38      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   :: zres, z2d ! temporary storage 2D 
     39      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z3d , zz3d ! temporary storage 3D 
    4040      !!--------------------------------------------------------------------- 
    4141  
     
    5050      IF( iom_use("DeltaC14") .OR. iom_use("C14Age") .OR. iom_use("RAge")   ) THEN 
    5151         ! 
    52          CALL wrk_alloc( jpi, jpj     , z2d, zres ) 
    53          CALL wrk_alloc( jpi, jpj, jpk, z3d, zz3d ) 
     52         ALLOCATE( z2d(jpi,jpj), zres(jpi,jpj) ) 
     53         ALLOCATE( z3d(jpi,jpj,jpk), zz3d(jpi,jpj,jpk) ) 
    5454         ! 
    5555         zage = -1._wp / rlam14 / rsiyea  ! factor for radioages in year 
     
    8787         CALL iom_put( "RAge" , zage * z2d(:,:) )                     ! Reservoir age [yr] 
    8888         ! 
    89          CALL wrk_dealloc( jpi, jpj     , z2d, zres ) 
    90          CALL wrk_dealloc( jpi, jpj, jpk, z3d, zz3d ) 
     89         DEALLOCATE( z2d, zres, z3d, zz3d ) 
    9190         ! 
    9291      ENDIF 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcsms_my_trc.F90

    r9124 r9125  
    4343      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    4444      INTEGER ::   jn   ! dummy loop index 
    45       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrmyt 
     45      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrmyt 
    4646      !!---------------------------------------------------------------------- 
    4747      ! 
     
    5252      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    5353 
    54       IF( l_trdtrc )  CALL wrk_alloc( jpi, jpj, jpk, ztrmyt ) 
     54      IF( l_trdtrc )  ALLOCATE( ztrmyt(jpi,jpj,jpk) ) 
    5555 
    5656      CALL trc_bc ( kt )       ! tracers: surface and lateral Boundary Conditions 
     
    6464            CALL trd_trc( ztrmyt, jn, jptra_sms, kt )   ! save trends 
    6565          END DO 
    66           CALL wrk_dealloc( jpi, jpj, jpk, ztrmyt ) 
     66          DEALLOCATE( ztrmyt ) 
    6767      END IF 
    6868      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90

    r9124 r9125  
    9696      REAL(wp) ::   znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju 
    9797      REAL(wp) ::   ze3t 
    98       REAL(wp), POINTER,   DIMENSION(:,:,:) :: zw2d 
    99       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zw3d 
     98      REAL(wp), ALLOCATABLE,   DIMENSION(:,:,:) :: zw2d 
     99      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zw3d 
    100100      CHARACTER (len=25) :: charout 
    101101      !!--------------------------------------------------------------------- 
     
    103103      IF( ln_timing )   CALL timing_start('p2z_bio') 
    104104      ! 
    105       IF( lk_iomput ) THEN 
    106          CALL wrk_alloc( jpi, jpj,     17, zw2d ) 
    107          CALL wrk_alloc( jpi, jpj, jpk, 3, zw3d ) 
    108       ENDIF 
     105      IF( lk_iomput ) ALLOCATE( zw2d(jpi,jpj,17), zw3d(jpi,jpj,jpk,3) ) 
    109106 
    110107      IF( kt == nittrc000 ) THEN 
     
    377374      ENDIF 
    378375      ! 
    379       IF( lk_iomput ) THEN 
    380          CALL wrk_dealloc( jpi, jpj,     17, zw2d ) 
    381          CALL wrk_dealloc( jpi, jpj, jpk, 3, zw3d ) 
    382       ENDIF 
     376      IF( lk_iomput ) DEALLOCATE( zw2d, zw3d ) 
    383377      ! 
    384378      IF( ln_timing )  CALL timing_stop('p2z_bio') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90

    r9124 r9125  
    6464      INTEGER  ::   ji, jj, jk, jl, ikt 
    6565      REAL(wp) ::   zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt 
    66       REAL(wp), POINTER, DIMENSION(:,:)   ::  zsedpoca 
     66      REAL(wp), DIMENSION(jpi,jpj)   ::  zsedpoca 
    6767      CHARACTER (len=25) :: charout 
    6868      !!--------------------------------------------------------------------- 
     
    7272      IF( kt == nittrc000 )   CALL p2z_exp_init 
    7373 
    74       CALL wrk_alloc( jpi, jpj, zsedpoca )  
    7574      zsedpoca(:,:) = 0. 
    7675 
     
    147146      ENDIF 
    148147      ! 
    149       CALL wrk_dealloc( jpi, jpj, zsedpoca)   ! temporary save of trends 
    150  
    151148      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    152149         WRITE(charout, FMT="('exp')") 
     
    167164      INTEGER  ::   ji, jj, jk 
    168165      REAL(wp) ::   zmaskt, zfluo, zfluu 
    169       REAL(wp), POINTER, DIMENSION(:,:  ) ::  zrro 
    170       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zdm0 
     166      REAL(wp), DIMENSION(jpi,jpj    ) :: zrro 
     167      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdm0 
    171168      !!--------------------------------------------------------------------- 
    172169      ! 
     
    178175      ENDIF 
    179176      ! 
    180       ! Allocate temporary workspace 
    181       CALL wrk_alloc( jpi, jpj,      zrro ) 
    182       CALL wrk_alloc( jpi, jpj, jpk, zdm0 ) 
    183  
    184177 
    185178      ! Calculate vertical distribution of newly formed biogenic poc 
     
    247240      ENDIF 
    248241      ! 
    249       CALL wrk_dealloc( jpi, jpj,      zrro ) 
    250       CALL wrk_dealloc( jpi, jpj, jpk, zdm0 ) 
    251       ! 
    252242   END SUBROUTINE p2z_exp_init 
    253243 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90

    r9124 r9125  
    6767      REAL(wp) ::   zkr, zkg            ! total absorption coefficient in red and green 
    6868      REAL(wp) ::   zcoef               ! temporary scalar 
    69       REAL(wp), POINTER, DIMENSION(:,:  ) :: zpar100, zpar0m 
    70       REAL(wp), POINTER, DIMENSION(:,:,:) :: zparr, zparg 
     69      REAL(wp), DIMENSION(jpi,jpj    ) :: zpar100, zpar0m 
     70      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zparr, zparg 
    7171      !!--------------------------------------------------------------------- 
    7272      ! 
    7373      IF( ln_timing )   CALL timing_start('p2z_opt') 
    7474      ! 
    75       ! Allocate temporary workspace 
    76       CALL wrk_alloc( jpi, jpj,      zpar100, zpar0m ) 
    77       CALL wrk_alloc( jpi, jpj, jpk, zparr, zparg    ) 
    7875 
    7976      IF( kt == nittrc000 ) THEN 
     
    142139      ENDIF 
    143140      ! 
    144       CALL wrk_dealloc( jpi, jpj,      zpar100, zpar0m ) 
    145       CALL wrk_dealloc( jpi, jpj, jpk, zparr, zparg    ) 
    146       ! 
    147141      IF( ln_timing )   CALL timing_stop('p2z_opt') 
    148142      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90

    r9124 r9125  
    5959      INTEGER  ::   ji, jj, jk, jl, ierr 
    6060      CHARACTER (len=25) :: charout 
    61       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    62       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra 
     61      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 
     62      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwork, ztra 
    6363      !!--------------------------------------------------------------------- 
    6464      ! 
     
    7070         IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
    7171      ENDIF 
    72  
    73       ! Allocate temporary workspace 
    74       CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra ) 
    7572 
    7673      ! sedimentation of detritus  : upstream scheme 
     
    9895      IF( lk_iomput )  THEN 
    9996         IF( iom_use( "TDETSED" ) ) THEN 
    100             CALL wrk_alloc( jpi, jpj, zw2d ) 
     97            ALLOCATE( zw2d(jpi,jpj) ) 
    10198            zw2d(:,:) =  ztra(:,:,1) * e3t_n(:,:,1) * 86400._wp 
    10299            DO jk = 2, jpkm1 
     
    104101            END DO 
    105102            CALL iom_put( "TDETSED", zw2d ) 
    106             CALL wrk_dealloc( jpi, jpj, zw2d ) 
     103            DEALLOCATE( zw2d ) 
    107104         ENDIF 
    108105      ENDIF 
    109       ! 
    110       CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra ) 
    111106      ! 
    112107 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90

    r9124 r9125  
    564564   LOGICAL   ::  l_exitnow 
    565565   REAL(wp), PARAMETER :: pz_exp_threshold = 1.0 
    566    REAL(wp), POINTER, DIMENSION(:,:,:) :: zalknw_inf, zalknw_sup, rmask, zh_min, zh_max, zeqn_absmin 
     566   REAL(wp), DIMENSION(jpi,jpj,jpk) :: zalknw_inf, zalknw_sup, rmask, zh_min, zh_max, zeqn_absmin 
    567567 
    568568   IF( ln_timing )  CALL timing_start('solve_at_general') 
    569       !  Allocate temporary workspace 
    570    CALL wrk_alloc( jpi, jpj, jpk, zalknw_inf, zalknw_sup, rmask ) 
    571    CALL wrk_alloc( jpi, jpj, jpk, zh_min, zh_max, zeqn_absmin ) 
    572569 
    573570   CALL anw_infsup( zalknw_inf, zalknw_sup ) 
     
    799796   END DO 
    800797   ! 
    801    CALL wrk_dealloc( jpi, jpj, jpk, zalknw_inf, zalknw_sup, rmask ) 
    802    CALL wrk_dealloc( jpi, jpj, jpk, zh_min, zh_max, zeqn_absmin ) 
    803  
    804798 
    805799      IF( ln_timing )   CALL timing_stop('solve_at_general') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r9124 r9125  
    7474      REAL(wp) :: dissol, zligco 
    7575      CHARACTER (len=25) :: charout 
    76       REAL(wp), POINTER, DIMENSION(:,:,:) :: zTL1, zFe3, ztotlig, precip 
    77       REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1, zFeL2, zTL2, zFe2, zFeP 
    78       REAL(wp), POINTER, DIMENSION(:,:  ) :: zstrn, zstrn2 
     76      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zTL1, zFe3, ztotlig, precip, zFeL1 
     77      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zFeL2, zTL2, zFe2, zFeP 
     78      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zstrn, zstrn2 
    7979      !!--------------------------------------------------------------------- 
    8080      ! 
    8181      IF( ln_timing )   CALL timing_start('p4z_fechem') 
    8282      ! 
    83       ! Allocate temporary workspace 
    84       CALL wrk_alloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
    8583      zFe3 (:,:,:) = 0. 
    8684      zFeL1(:,:,:) = 0. 
    8785      zTL1 (:,:,:) = 0. 
    8886      IF( ln_fechem ) THEN 
    89          CALL wrk_alloc( jpi, jpj,      zstrn, zstrn2 ) 
    90          CALL wrk_alloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 
     87         ALLOCATE( zstrn(jpi,jpj), zstrn2(jpi,jpj) ) 
     88         ALLOCATE( zFe2(jpi,jpj,jpk), zFeL2(jpi,jpj,jpk), zTL2(jpi,jpj,jpk), zFeP(jpi,jpj,jpk) ) 
    9189         zFe2 (:,:,:) = 0. 
    9290         zFeL2(:,:,:) = 0. 
     
    360358      ENDIF 
    361359      ! 
    362       CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
    363360      IF( ln_fechem )  THEN 
    364          CALL wrk_dealloc( jpi, jpj,      zstrn, zstrn2 ) 
    365          CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 
     361         DEALLOCATE( zstrn, zstrn2 ) 
     362         DEALLOCATE( zFe2, zFeL2, zTL2, zFeP ) 
    366363      ENDIF 
    367364      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r9124 r9125  
    8080      REAL(wp) ::   zyr_dec, zdco2dt 
    8181      CHARACTER (len=25) :: charout 
    82       REAL(wp), POINTER, DIMENSION(:,:) :: zkgco2, zkgo2, zh2co3, zoflx, zw2d, zpco2atm   
     82      REAL(wp), DIMENSION(jpi,jpj) :: zkgco2, zkgo2, zh2co3, zoflx,  zpco2atm   
     83      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 
    8384      !!--------------------------------------------------------------------- 
    8485      ! 
    8586      IF( ln_timing )   CALL timing_start('p4z_flx') 
    86       ! 
    87       CALL wrk_alloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx, zpco2atm ) 
    8887      ! 
    8988 
     
    187186 
    188187      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    189          CALL wrk_alloc( jpi, jpj, zw2d 
     188         ALLOCATE( zw2d(jpi,jpj) 
    190189         IF( iom_use( "Cflx"  ) )  THEN 
    191190            zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) * rfact2r 
     
    211210         CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum )      ! molC 
    212211         ! 
    213          CALL wrk_dealloc( jpi, jpj, zw2d ) 
    214       ENDIF 
    215       ! 
    216       CALL wrk_dealloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx, zpco2atm ) 
     212         DEALLOCATE( zw2d ) 
     213      ENDIF 
    217214      ! 
    218215      IF( ln_timing )   CALL timing_stop('p4z_flx') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90

    r9124 r9125  
    6262      REAL(wp) ::   zomegaca, zexcess, zexcess0 
    6363      CHARACTER (len=25) :: charout 
    64       REAL(wp), POINTER, DIMENSION(:,:,:) :: zco3, zcaldiss, zhinit, zhi, zco3sat 
     64      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zco3, zcaldiss, zhinit, zhi, zco3sat 
    6565      !!--------------------------------------------------------------------- 
    6666      ! 
    6767      IF( ln_timing )  CALL timing_start('p4z_lys') 
    68       ! 
    69       CALL wrk_alloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat ) 
    7068      ! 
    7169      zco3    (:,:,:) = 0. 
     
    139137      ENDIF 
    140138      ! 
    141       CALL wrk_dealloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat ) 
    142       ! 
    143139      IF( ln_timing )   CALL timing_stop('p4z_lys') 
    144140      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r9124 r9125  
    7272      REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg 
    7373      CHARACTER (len=25) :: charout 
    74       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     74      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 
     75      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    7576 
    7677      !!--------------------------------------------------------------------- 
     
    7879      IF( ln_timing )   CALL timing_start('p4z_meso') 
    7980      ! 
    80       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    8181      zgrazing(:,:,:) = 0._wp 
    8282 
     
    220220      ! 
    221221      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    222          CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     222         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    223223         IF( iom_use( "GRAZ2" ) ) THEN 
    224224            zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !   Total grazing of phyto by zooplankton 
     
    229229            CALL iom_put( "PCAL", zw3d )   
    230230         ENDIF 
    231          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     231         DEALLOCATE( zw3d ) 
    232232      ENDIF 
    233233      ! 
     
    237237        CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    238238      ENDIF 
    239       ! 
    240       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    241239      ! 
    242240      IF( ln_timing )   CALL timing_stop('p4z_meso') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r9124 r9125  
    6969      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7070      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
    71       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     71      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing  
     72      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zw3d 
    7273      CHARACTER (len=25) :: charout 
    7374      !!--------------------------------------------------------------------- 
    7475      ! 
    7576      IF( ln_timing )   CALL timing_start('p4z_micro') 
    76       ! 
    77       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    7877      ! 
    7978      DO jk = 1, jpkm1 
     
    177176      IF( lk_iomput ) THEN 
    178177         IF( knt == nrdttrc ) THEN 
    179            CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     178           ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    180179           IF( iom_use( "GRAZ1" ) ) THEN 
    181180              zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    182181              CALL iom_put( "GRAZ1", zw3d ) 
    183182           ENDIF 
    184            CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     183           DEALLOCATE( zw3d ) 
    185184         ENDIF 
    186185      ENDIF 
     
    191190         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    192191      ENDIF 
    193       ! 
    194       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    195192      ! 
    196193      IF( ln_timing )   CALL timing_stop('p4z_micro') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r9124 r9125  
    6464      REAL(wp) ::   zchl 
    6565      REAL(wp) ::   zc0 , zc1 , zc2, zc3, z1_dep 
    66       REAL(wp), POINTER, DIMENSION(:,:  ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 
    67       REAL(wp), POINTER, DIMENSION(:,:  ) :: zetmp5 
    68       REAL(wp), POINTER, DIMENSION(:,:  ) :: zqsr100, zqsr_corr 
    69       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpar, ze0, ze1, ze2, ze3, zchl3d 
     66      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zetmp5 
     67      REAL(wp), DIMENSION(jpi,jpj    ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 
     68      REAL(wp), DIMENSION(jpi,jpj    ) :: zqsr100, zqsr_corr 
     69      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpar, ze0, ze1, ze2, ze3, zchl3d 
    7070      !!--------------------------------------------------------------------- 
    7171      ! 
     
    7373      ! 
    7474      ! Allocate temporary workspace 
    75                    CALL wrk_alloc( jpi, jpj,      zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 
    76                    CALL wrk_alloc( jpi, jpj,      zqsr100, zqsr_corr ) 
    77       IF( ln_p5z ) CALL wrk_alloc( jpi, jpj,      zetmp5 ) 
    78                    CALL wrk_alloc( jpi, jpj, jpk, zpar   , ze0, ze1, ze2, ze3, zchl3d ) 
     75      IF( ln_p5z ) ALLOCATE( zetmp5(jpi,jpj) ) 
    7976 
    8077      IF( knt == 1 .AND. ln_varpar ) CALL p4z_opt_sbc( kt ) 
     
    243240      ENDIF 
    244241      ! 
    245                    CALL wrk_dealloc( jpi, jpj,      zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 
    246                    CALL wrk_dealloc( jpi, jpj,      zqsr100, zqsr_corr ) 
    247       IF( ln_p5z ) CALL wrk_dealloc( jpi, jpj,      zetmp5 ) 
    248                    CALL wrk_dealloc( jpi, jpj, jpk, zpar   ,  ze0, ze1, ze2, ze3, zchl3d ) 
     242      IF( ln_p5z ) DEALLOCATE( zetmp5 ) 
    249243      ! 
    250244      IF( ln_timing )  CALL timing_stop('p4z_opt') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zpoc.F90

    r9124 r9125  
    6363      REAL(wp) ::   zrfact2 
    6464      CHARACTER (len=25) :: charout 
    65       REAL(wp), POINTER, DIMENSION(:,:  )   :: totprod, totthick, totcons  
    66       REAL(wp), POINTER, DIMENSION(:,:,:)   :: zremipoc, zremigoc, zorem3, ztremint 
    67       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: alphag 
     65      REAL(wp), DIMENSION(jpi,jpj  )   :: totprod, totthick, totcons  
     66      REAL(wp), DIMENSION(jpi,jpj,jpk)   :: zremipoc, zremigoc, zorem3, ztremint 
     67      REAL(wp), DIMENSION(jpi,jpj,jpk,jcpoc) :: alphag 
    6868      !!--------------------------------------------------------------------- 
    6969      ! 
    7070      IF( ln_timing )  CALL timing_start('p4z_poc') 
    7171      ! 
    72       ! Allocate temporary workspace 
    73       CALL wrk_alloc( jpi, jpj,      totprod,  totthick, totcons ) 
    74       CALL wrk_alloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, ztremint ) 
    75       ALLOCATE( alphag(jpi,jpj,jpk,jcpoc) ) 
    76  
    7772      ! Initialization of local variables 
    7873      ! --------------------------------- 
     
    465460      ENDIF 
    466461      ! 
    467       CALL wrk_dealloc( jpi, jpj,      totprod,  totthick, totcons ) 
    468       CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, ztremint ) 
    469       DEALLOCATE( alphag ) 
    470462      ! 
    471463      IF( ln_timing )   CALL timing_stop('p4z_poc') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r9124 r9125  
    7676      REAL(wp) ::   zfact 
    7777      CHARACTER (len=25) :: charout 
    78       REAL(wp), POINTER, DIMENSION(:,:  ) :: zstrn, zw2d, zmixnano, zmixdiat 
    79       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadd, zysopt, zw3d    
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprdia, zprbio, zprdch, zprnch    
    81       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcad, zprofed, zprofen 
    82       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewd 
    83       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 
     78      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 
     79      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
     80      REAL(wp), DIMENSION(jpi,jpj    ) :: zstrn, zmixnano, zmixdiat 
     81      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadd, zysopt   
     82      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprdia, zprbio, zprdch, zprnch    
     83      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcad, zprofed, zprofen 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewd 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 
    8486      !!--------------------------------------------------------------------- 
    8587      ! 
     
    8789      ! 
    8890      !  Allocate temporary workspace 
    89       CALL wrk_alloc( jpi, jpj,      zmixnano, zmixdiat, zstrn ) 
    90       CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt )  
    91       CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    92       CALL wrk_alloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd ) 
    9391      ! 
    9492      zprorcan(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp ; zprofed (:,:,:) = 0._wp 
     
    367365    IF( lk_iomput ) THEN 
    368366       IF( knt == nrdttrc ) THEN 
    369           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    370           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     367          ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    371368          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    372369          ! 
     
    469466          IF( iom_use( "tintpp" ) )  CALL iom_put( "tintpp" , tpp * zfact )  !  global total integrated primary production molC/s 
    470467          ! 
    471           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    472           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     468          DEALLOCATE( zw2d, zw3d ) 
    473469       ENDIF 
    474470     ENDIF 
     
    479475         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    480476     ENDIF 
    481      ! 
    482      CALL wrk_dealloc( jpi, jpj,  zmixnano, zmixdiat,    zstrn ) 
    483      CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt )  
    484      CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    485      CALL wrk_dealloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd ) 
    486477     ! 
    487478     IF( ln_timing )  CALL timing_stop('p4z_prod') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r9124 r9125  
    6767      REAL(wp) ::   zosil, ztem, zdenitnh4, zolimic, zolimin, zolimip, zdenitrn, zdenitrp 
    6868      CHARACTER (len=25) :: charout 
    69       REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac 
    70       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zfacsi, zw3d, zfacsib 
     69      REAL(wp), DIMENSION(jpi,jpj    ) :: ztempbac 
     70      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib 
     71      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    7172      !!--------------------------------------------------------------------- 
    7273      ! 
    7374      IF( ln_timing )   CALL timing_start('p4z_rem') 
    7475      ! 
    75       ! Allocate temporary workspace 
    76       CALL wrk_alloc( jpi, jpj,      ztempbac                  ) 
    77       CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 
    78  
    79       ! Initialisation of temprary arrys 
     76      ! Initialisation of arrys 
    8077      zdepprod(:,:,:) = 1._wp 
    8178      ztempbac(:,:)   = 0._wp 
     
    270267 
    271268      IF( knt == nrdttrc ) THEN 
    272           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     269          ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    273270          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    274271          ! 
     
    282279          ENDIF 
    283280          ! 
    284           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     281          DEALLOCATE( zw3d ) 
    285282       ENDIF 
    286       ! 
    287       CALL wrk_dealloc( jpi, jpj,      ztempbac                  ) 
    288       CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 
    289283      ! 
    290284      IF( ln_timing )   CALL timing_stop('p4z_rem') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r9124 r9125  
    6262      ! 
    6363      CHARACTER (len=25) :: charout 
    64       REAL(wp), POINTER, DIMENSION(:,:  ) :: zsidep, zwork1, zwork2, zwork3 
    65       REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zironice, zbureff 
    66       REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsbio3, zwsbio4, zwscal 
    67       REAL(wp), POINTER, DIMENSION(:,:  ) :: zsedcal, zsedsi, zsedc 
    68       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zsoufer, zpdep, zlight 
    69       REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsfep 
     64      REAL(wp), DIMENSION(jpi,jpj    ) :: zwork1, zwork2, zwork3 
     65      REAL(wp), DIMENSION(jpi,jpj    ) :: zdenit2d, zbureff 
     66      REAL(wp), DIMENSION(jpi,jpj    ) :: zwsbio3, zwsbio4, zwscal 
     67      REAL(wp), DIMENSION(jpi,jpj    ) :: zsedcal, zsedsi, zsedc 
     68      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight 
     69      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zpdep 
     70      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zsidep, zwsfep, zironice 
    7071      !!--------------------------------------------------------------------- 
    7172      ! 
     
    7576      ! 
    7677      ! Allocate temporary workspace 
    77                       CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 
    78                       CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    79                       CALL wrk_alloc( jpi, jpj, zsedcal,  zsedsi, zsedc ) 
    80                       CALL wrk_alloc( jpi, jpj, jpk, zlight, zsoufer ) 
    81       IF( ln_p5z )    CALL wrk_alloc( jpi, jpj, jpk, ztrpo4, ztrdop ) 
    82       IF( ln_ligand ) CALL wrk_alloc( jpi, jpj, zwsfep ) 
     78      IF( ln_p5z )    ALLOCATE( ztrpo4(jpi,jpj,jpk), ztrdop(jpi,jpj,jpk) ) 
     79      IF( ln_ligand ) ALLOCATE( zwsfep(jpi,jpj) ) 
    8380 
    8481 
     
    9794      IF( ln_ironice ) THEN   
    9895         !                                               
    99          CALL wrk_alloc( jpi, jpj, zironice ) 
     96         ALLOCATE( zironice(jpi,jpj) ) 
    10097         !                                               
    10198         DO jj = 1, jpj 
     
    114111            &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 
    115112         ! 
    116          CALL wrk_dealloc( jpi, jpj, zironice ) 
     113         DEALLOCATE( zironice ) 
    117114         !                                               
    118115      ENDIF 
     
    122119      IF( ln_dust ) THEN 
    123120         !                                               
    124          CALL wrk_alloc( jpi, jpj,      zsidep ) 
    125          CALL wrk_alloc( jpi, jpj, jpk, zpdep, zirondep      ) 
     121         ALLOCATE( zsidep(jpi,jpj) ) 
     122         ALLOCATE( zpdep(jpi,jpj,jpk), zirondep(jpi,jpj,jpk) ) 
    126123         !                                              ! Iron and Si deposition at the surface 
    127124         IF( ln_solub ) THEN 
     
    152149            ENDIF 
    153150         ENDIF 
    154          CALL wrk_dealloc( jpi, jpj,      zsidep ) 
    155          CALL wrk_dealloc( jpi, jpj, jpk, zpdep, zirondep      ) 
     151         DEALLOCATE( zsidep ) 
     152         DEALLOCATE( zpdep, zirondep ) 
    156153         !                                               
    157154      ENDIF 
     
    514511      ENDIF 
    515512      ! 
    516                       CALL wrk_dealloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 
    517                       CALL wrk_dealloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    518                       CALL wrk_dealloc( jpi, jpj, zsedcal,  zsedsi, zsedc ) 
    519                       CALL wrk_dealloc( jpi, jpj, jpk, zlight, zsoufer ) 
    520       IF( ln_p5z )    CALL wrk_dealloc( jpi, jpj, jpk, ztrpo4, ztrdop ) 
    521       IF( ln_ligand ) CALL wrk_dealloc( jpi, jpj, zwsfep ) 
     513      IF( ln_p5z )    DEALLOCATE( ztrpo4, ztrdop ) 
     514      IF( ln_ligand ) DEALLOCATE( zwsfep ) 
    522515      ! 
    523516      IF( ln_timing )  CALL timing_stop('p4z_sed') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r9124 r9125  
    6565      REAL(wp) ::   zfact, zwsmax, zmax 
    6666      CHARACTER (len=25) :: charout 
    67       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d 
    68       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
     67      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
     68      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zw2d 
    6969      !!--------------------------------------------------------------------- 
    7070      ! 
     
    212212     IF( lk_iomput ) THEN 
    213213       IF( knt == nrdttrc ) THEN 
    214           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    215           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     214          ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    216215          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    217216          ! 
     
    250249          IF( iom_use( "tcexp" ) )  CALL iom_put( "tcexp" , t_oce_co2_exp * zfact )   ! molC/s 
    251250          !  
    252           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    253           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     251          DEALLOCATE( zw2d, zw3d ) 
    254252        ENDIF 
    255253      ENDIF 
     
    304302      INTEGER  ::   ji, jj, jk, jn 
    305303      REAL(wp) ::   zigma,zew,zign, zflx, zstep 
    306       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztraz, zakz, zwsink2, ztrb  
     304      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztraz, zakz, zwsink2, ztrb  
    307305      !!--------------------------------------------------------------------- 
    308306      ! 
    309307      IF( ln_timing )   CALL timing_start('p4z_sink2') 
    310308      ! 
    311       ! Allocate temporary workspace 
    312       CALL wrk_alloc( jpi, jpj, jpk, ztraz, zakz, zwsink2, ztrb ) 
    313  
    314309      zstep = rfact2 / REAL( kiter, wp ) / 2. 
    315310 
     
    391386      psinkflx(:,:,:)   = 2. * psinkflx(:,:,:) 
    392387      ! 
    393       CALL wrk_dealloc( jpi, jpj, jpk, ztraz, zakz, zwsink2, ztrb ) 
    394       ! 
    395388      IF( ln_timing )  CALL timing_stop('p4z_sink2') 
    396389      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r9124 r9125  
    420420      CHARACTER(LEN=100)   ::   cltxt 
    421421      INTEGER :: jk 
    422       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork 
     422      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwork 
    423423      !!---------------------------------------------------------------------- 
    424424      ! 
     
    437437      ENDIF 
    438438 
    439       CALL wrk_alloc( jpi, jpj, jpk, zwork ) 
    440       ! 
    441439      IF( iom_use( "pno3tot" ) .OR. ( ln_check_mass .AND. kt == nitend )  ) THEN 
    442440         !   Compute the budget of NO3, ALK, Si, Fer 
     
    503501      ENDIF 
    504502      ! 
    505       CALL wrk_dealloc( jpi, jpj, jpk, zwork ) 
    506       ! 
    507503      ! Global budget of N SMS : denitrification in the water column and in the sediment 
    508504      !                          nitrogen fixation by the diazotrophs 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmeso.F90

    r9124 r9125  
    8585      CHARACTER (len=25) :: charout 
    8686      REAL(wp) :: zrfact2, zmetexcess 
    87       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     87      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 
     88      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    8889 
    8990      !!--------------------------------------------------------------------- 
     
    9192      IF( ln_timing )   CALL timing_start('p5z_meso') 
    9293      ! 
    93       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    9494      zgrazing(:,:,:) = 0._wp 
    9595 
     
    342342      ! 
    343343      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    344          CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     344         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    345345         IF( iom_use( "GRAZ2" ) ) THEN 
    346346            zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !   Total grazing of phyto by zooplankton 
     
    351351            CALL iom_put( "PCAL", zw3d ) 
    352352         ENDIF 
    353          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     353         DEALLOCATE( zw3d ) 
    354354      ENDIF 
    355355      ! 
     
    359359        CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    360360      ENDIF 
    361       ! 
    362       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    363361      ! 
    364362      IF( ln_timing )   CALL timing_stop('p5z_meso') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmicro.F90

    r9124 r9125  
    8282      REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 
    8383      REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2, zmetexcess 
    84       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 
     85      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    8586      CHARACTER (len=25) :: charout 
    8687      !!--------------------------------------------------------------------- 
    8788      ! 
    8889      IF( ln_timing )   CALL timing_start('p5z_micro') 
    89       ! 
    90       CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    9190      ! 
    9291      zmetexcess = 0.0 
     
    290289      ! 
    291290      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    292          CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     291         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    293292         IF( iom_use( "GRAZ1" ) ) THEN 
    294293            zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    295294            CALL iom_put( "GRAZ1", zw3d ) 
    296295         ENDIF 
    297          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     296         DEALLOCATE( zw3d ) 
    298297      ENDIF 
    299298      ! 
     
    303302         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    304303      ENDIF 
    305       ! 
    306       CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
    307304      ! 
    308305      IF( ln_timing )   CALL timing_stop('p5z_micro') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zprod.F90

    r9124 r9125  
    8181      REAL(wp) ::   zfact, zrfact2 
    8282      CHARACTER (len=25) :: charout 
    83       REAL(wp), POINTER, DIMENSION(:,:  ) :: zmixnano, zmixpico, zmixdiat, zstrn 
    84       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadp, zpislopeadd 
    85       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprbio, zprpic, zprdia, zysopt 
    86       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprchln, zprchlp, zprchld 
    87       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcap, zprorcad  
    88       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen 
    89       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewp, zpronewd 
    90       REAL(wp), POINTER, DIMENSION(:,:,:) :: zproregn, zproregp, zproregd 
    91       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpropo4n, zpropo4p, zpropo4d 
    92       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprodopn, zprodopp, zprodopd 
    93       REAL(wp), POINTER, DIMENSION(:,:,:) :: zrespn, zrespp, zrespd, zprnut 
    94       REAL(wp), POINTER, DIMENSION(:,:,:) :: zcroissn, zcroissp, zcroissd 
    95       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 
    96       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d 
    97       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
     83      REAL(wp), DIMENSION(jpi,jpj    ) :: zmixnano, zmixpico, zmixdiat, zstrn 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadp, zpislopeadd 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprbio, zprpic, zprdia, zysopt 
     86      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprchln, zprchlp, zprchld 
     87      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcap, zprorcad  
     88      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofed, zprofep, zprofen 
     89      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewp, zpronewd 
     90      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zproregn, zproregp, zproregd 
     91      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpropo4n, zpropo4p, zpropo4d 
     92      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprodopn, zprodopp, zprodopd 
     93      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zrespn, zrespp, zrespd, zprnut 
     94      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcroissn, zcroissp, zcroissd 
     95      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 
     96      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
     97      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zw2d 
    9898      !!--------------------------------------------------------------------- 
    9999      ! 
    100100      IF( ln_timing )   CALL timing_start('p5z_prod') 
    101       ! 
    102       !  Allocate temporary workspace 
    103       CALL wrk_alloc( jpi, jpj,      zmixnano, zmixpico, zmixdiat, zstrn ) 
    104       CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    105       CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )  
    106       CALL wrk_alloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    107       CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen ) 
    108       CALL wrk_alloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    109       CALL wrk_alloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
    110       CALL wrk_alloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd ) 
    111       CALL wrk_alloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd ) 
    112101      ! 
    113102      zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp 
     
    474463    IF( lk_iomput ) THEN 
    475464       IF( knt == nrdttrc ) THEN 
    476           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    477           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
     465          ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    478466          zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    479467          ! 
     
    550538          IF( iom_use( "tintpp" ) )  CALL iom_put( "tintpp" , tpp * zfact )  !  global total integrated primary production molC/s 
    551539          ! 
    552           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    553           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
     540          DEALLOCATE( zw2d, zw3d ) 
    554541       ENDIF 
    555542     ENDIF 
     
    560547         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    561548      ENDIF 
    562       ! 
    563       CALL wrk_dealloc( jpi, jpj,      zmixnano, zmixpico, zmixdiat, zstrn ) 
    564       CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    565       CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )                            
    566       CALL wrk_dealloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    567       CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen )  
    568       CALL wrk_dealloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    569       CALL wrk_dealloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
    570       CALL wrk_dealloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd ) 
    571       CALL wrk_dealloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd ) 
    572549      ! 
    573550      IF( ln_timing )   CALL timing_stop('p5z_prod') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90

    r9124 r9125  
    4747      INTEGER, INTENT( in ) ::   kt   ! ocean time-step  
    4848      CHARACTER (len=22) :: charout 
    49       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   ztrtrd 
     49      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   ztrtrd 
    5050      !!---------------------------------------------------------------------- 
    5151      ! 
     
    5858 
    5959      IF( l_trdtrc )  THEN 
    60          CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrtrd ) ! temporary save of trends 
     60         ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) ! temporary save of trends 
    6161         ztrtrd(:,:,:,:)  = tra(:,:,:,:) 
    6262      ENDIF 
     
    8989           CALL trd_tra( kt, 'TRC', jn, jptra_bbl, ztrtrd(:,:,:,jn) ) 
    9090        END DO 
    91         CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrtrd ) ! temporary save of trends 
     91        DEALLOCATE( ztrtrd ) ! temporary save of trends 
    9292      ENDIF 
    9393      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90

    r9124 r9125  
    8585      INTEGER ::   ji, jj, jk, jn, jl   ! dummy loop indices 
    8686      CHARACTER (len=22) ::   charout 
    87       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrtrd 
    88       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrcdta   ! 3D  workspace 
     87      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrtrd 
     88      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrcdta   ! 3D  workspace 
    8989      !!---------------------------------------------------------------------- 
    9090      ! 
    9191      IF( ln_timing )   CALL timing_start('trc_dmp') 
    9292      ! 
    93       IF( l_trdtrc )   CALL wrk_alloc( jpi, jpj, jpk, ztrtrd )   ! temporary save of trends 
     93      IF( l_trdtrc )   ALLOCATE( ztrtrd(jpi,jpj,jpk) )   ! temporary save of trends 
    9494      ! 
    9595      IF( nb_trcdta > 0 ) THEN  ! Initialisation of tracer from a file that may also be used for damping 
    9696         ! 
    97          CALL wrk_alloc( jpi, jpj, jpk, ztrcdta )    ! Memory allocation 
     97         ALLOCATE( ztrcdta(jpi,jpj,jpk) )    ! Memory allocation 
    9898         !                                                          ! =========== 
    9999         DO jn = 1, jptra                                           ! tracer loop 
     
    150150         END DO                                                     ! tracer loop 
    151151         !                                                          ! =========== 
    152          CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 
    153       ENDIF 
    154       ! 
    155       IF( l_trdtrc )  CALL wrk_dealloc( jpi, jpj, jpk, ztrtrd ) 
     152         DEALLOCATE( ztrcdta ) 
     153      ENDIF 
     154      ! 
     155      IF( l_trdtrc )  DEALLOCATE( ztrtrd ) 
    156156      !                                          ! print mean trends (used for debugging) 
    157157      IF( ln_ctl ) THEN 
     
    352352         IF(lwp)  WRITE(numout,*) 
    353353         ! 
    354          CALL wrk_alloc( jpi, jpj, jpk, ztrcdta )   ! Memory allocation 
     354         ALLOCATE( ztrcdta(jpi,jpj,jpk) )   ! Memory allocation 
    355355         ! 
    356356         DO jn = 1, jptra 
     
    370370             ENDIF 
    371371          ENDDO 
    372           CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 
     372          DEALLOCATE( ztrcdta ) 
    373373      ENDIF 
    374374      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf.F90

    r9124 r9125  
    7070      REAL(wp)           :: zdep 
    7171      CHARACTER (len=22) :: charout 
    72       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zahu, zahv 
     72      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   zahu, zahv 
    7373      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   ztrtrd 
    7474      !!---------------------------------------------------------------------- 
     
    7777      ! 
    7878      IF( l_trdtrc )  THEN 
    79          CALL wrk_alloc( jpi,jpj,jpk,jptra,   ztrtrd ) 
     79         ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) 
    8080         ztrtrd(:,:,:,:)  = tra(:,:,:,:) 
    8181      ENDIF 
    8282      !                                  !* set the lateral diffusivity coef. for passive tracer       
    83       CALL wrk_alloc( jpi,jpj,jpk,   zahu, zahv ) 
    8483      zahu(:,:,:) = rldf * ahtu(:,:,:)  
    8584      zahv(:,:,:) = rldf * ahtv(:,:,:) 
     
    113112           CALL trd_tra( kt, 'TRC', jn, jptra_ldf, ztrtrd(:,:,:,jn) ) 
    114113        END DO 
    115         CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrtrd ) 
     114        DEALLOCATE( ztrtrd ) 
    116115      ENDIF 
    117116      !                 
     
    121120         CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    122121      ENDIF 
    123       ! 
    124       CALL wrk_dealloc( jpi,jpj,jpk,   zahu, zahv ) 
    125122      ! 
    126123      IF( ln_timing )   CALL timing_stop('trc_ldf') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90

    r9124 r9125  
    139139      REAL(wp) :: ztrcorb, ztrmasb   ! temporary scalars 
    140140      REAL(wp) :: zcoef, ztrcorn, ztrmasn   !    "         " 
    141       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrtrdb, ztrtrdn   ! workspace arrays 
     141      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrtrdb, ztrtrdn   ! workspace arrays 
    142142      REAL(wp) :: zs2rdt 
    143143      LOGICAL ::   lldebug = .FALSE. 
     
    145145 
    146146  
    147       IF( l_trdtrc )  CALL wrk_alloc( jpi, jpj, jpk, ztrtrdb, ztrtrdn ) 
     147      IF( l_trdtrc )  ALLOCATE( ztrtrdb(jpi,jpj,jpk), ztrtrdn(jpi,jpj,jpk) ) 
    148148       
    149149      IF( PRESENT( cpreserv )  ) THEN   !  total tracer concentration is preserved  
     
    226226      ENDIF 
    227227 
    228       IF( l_trdtrc )  CALL wrk_dealloc( jpi, jpj, jpk, ztrtrdb, ztrtrdn ) 
     228      IF( l_trdtrc )  DEALLOCATE( ztrtrdb, ztrtrdn ) 
    229229 
    230230   END SUBROUTINE trc_rad_sms 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90

    r9124 r9125  
    6464      REAL(wp) ::   zftra, zcd, zdtra, ztfx, ztra   !   -      - 
    6565      CHARACTER (len=22) :: charout 
    66       REAL(wp), POINTER, DIMENSION(:,:)   ::   zsfx 
    67       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrtrd 
     66      REAL(wp), DIMENSION(jpi,jpj)   ::   zsfx 
     67      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ztrtrd 
    6868      !!--------------------------------------------------------------------- 
    6969      ! 
     
    7171      ! 
    7272      ! Allocate temporary workspace 
    73                       CALL wrk_alloc( jpi,jpj,       zsfx   ) 
    74       IF( l_trdtrc )  CALL wrk_alloc( jpi,jpj,jpk,   ztrtrd ) 
     73      IF( l_trdtrc )  ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 
    7574      ! 
    7675      zrtrn = 1.e-15_wp 
     
    179178                                           CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 
    180179      ENDIF 
    181                       CALL wrk_dealloc( jpi,jpj,       zsfx   ) 
    182       IF( l_trdtrc )  CALL wrk_dealloc( jpi,jpj,jpk,   ztrtrd ) 
     180      IF( l_trdtrc )  DEALLOCATE( ztrtrd ) 
    183181      ! 
    184182      IF( ln_timing )   CALL timing_stop('trc_sbc') 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc.F90

    r9050 r9125  
    3131   USE prtctl            ! print control 
    3232   USE sms_pisces        ! PISCES bio-model 
    33    USE wrk_nemo          ! Memory allocation 
    3433 
    3534   IMPLICIT NONE 
     
    9796      ! 
    9897      INTEGER ::   ji, jj, jk, isum 
    99       REAL(wp), POINTER, DIMENSION(:,:) :: zvlmsk 
    100       !!---------------------------------------------------------------------- 
    101  
    102       CALL wrk_alloc( jpi, jpj, zvlmsk ) 
     98      REAL(wp), DIMENSION(jpi,jpj) :: zvlmsk 
     99      !!---------------------------------------------------------------------- 
    103100 
    104101      ! I. Definition of control surface and integration weights 
     
    182179            tmltrd_trc(:,:,ktrd,kjn) = tmltrd_trc(:,:,ktrd,kjn) + ptrc_trdmxl(:,:,1) * wkx_trc(:,:,1)  ! non penetrative 
    183180      END SELECT 
    184       ! 
    185       CALL wrk_dealloc( jpi, jpj, zvlmsk ) 
    186181      ! 
    187182   END SUBROUTINE trd_mxl_trc_zint 
     
    241236      REAL(wp) ::   zavt, zfn, zfn2 
    242237      ! 
    243       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmltot             ! d(trc)/dt over the anlysis window (incl. Asselin) 
    244       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmlres             ! residual = dh/dt entrainment term 
    245       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmlatf             ! for storage only 
    246       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmlrad             ! for storage only (for trb<0 corr in trcrad) 
    247       ! 
    248       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmltot2            ! -+ 
    249       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmlres2            !  | working arrays to diagnose the trends 
    250       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmltrdm2           !  | associated with the time meaned ML 
    251       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmlatf2            !  | passive tracers 
    252       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmlrad2            !  | (-> for trb<0 corr in trcrad) 
     238      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmltot             ! d(trc)/dt over the anlysis window (incl. Asselin) 
     239      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmlres             ! residual = dh/dt entrainment term 
     240      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmlatf             ! for storage only 
     241      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmlrad             ! for storage only (for trb<0 corr in trcrad) 
     242      ! 
     243      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmltot2            ! -+ 
     244      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmlres2            !  | working arrays to diagnose the trends 
     245      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmltrdm2           !  | associated with the time meaned ML 
     246      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmlatf2            !  | passive tracers 
     247      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   ztmlrad2            !  | (-> for trb<0 corr in trcrad) 
    253248      ! 
    254249      CHARACTER (LEN=10) ::   clvar 
    255250      !!---------------------------------------------------------------------- 
    256251 
    257       ! Set-up pointers into sub-arrays of workspaces 
    258       CALL wrk_alloc( jpi, jpj, jptra, ztmltot , ztmlres , ztmlatf , ztmlrad             ) 
    259       CALL wrk_alloc( jpi, jpj, jptra, ztmltot2, ztmlres2, ztmlatf2, ztmlrad2, ztmltrdm2 ) 
    260252 
    261253      IF( nn_dttrc  /= 1  )   CALL ctl_stop( " Be careful, trends diags never validated " ) 
     
    734726 
    735727      IF( lrst_trc )   CALL trd_mxl_trc_rst_write( kt )  ! this must be after the array swap above (III.3) 
    736  
    737       CALL wrk_dealloc( jpi, jpj, jptra, ztmltot , ztmlres , ztmlatf , ztmlrad             ) 
    738       CALL wrk_dealloc( jpi, jpj, jptra, ztmltot2, ztmlres2, ztmlatf2, ztmlrad2, ztmltrdm2 ) 
    739728      ! 
    740729   END SUBROUTINE trd_mxl_trc 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r9019 r9125  
    1919 
    2020   USE in_out_manager                           !* IO manager * 
    21    USE wrk_nemo                                 !* Memory Allocation * 
    2221   USE timing                                   !* Timing *  
    2322   USE lib_mpp                                  !* MPP library                          
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/prtctl_trc.F90

    r7881 r9125  
    6868      CHARACTER (len=20), ALLOCATABLE, DIMENSION(:) ::   cl 
    6969      CHARACTER (len=10) ::   cl2 
    70       REAL(wp), POINTER, DIMENSION(:,:,:)  :: zmask, ztab3d  
    71       !!---------------------------------------------------------------------- 
    72  
    73       CALL wrk_alloc( jpi, jpj, jpk, zmask, ztab3d ) 
     70      REAL(wp), DIMENSION(jpi,jpj,jpk)  :: zmask, ztab3d  
     71      !!---------------------------------------------------------------------- 
     72 
    7473      ALLOCATE( cl(jptra) ) 
    7574      !                                      ! Arrays, scalars initialization  
     
    148147      END DO 
    149148      ! 
    150       CALL wrk_dealloc( jpi, jpj, jpk, zmask, ztab3d ) 
    151149      DEALLOCATE( cl ) 
    152150      ! 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/trcsub.F90

    r9124 r9125  
    467467      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    468468      REAL(wp) ::   zcoefu, zcoefv, zcoeff, z2dt, z1_2dt, z1_rau0   ! local scalars 
    469       REAL(wp), POINTER, DIMENSION(:,:) :: zhdiv 
     469      REAL(wp), DIMENSION(jpi,jpj) :: zhdiv 
    470470      !!--------------------------------------------------------------------- 
    471471      ! 
    472472      IF( ln_timing )   CALL timing_start('trc_sub_ssh') 
    473473      ! 
    474       ! Allocate temporary workspace 
    475       CALL wrk_alloc( jpi,jpj,   zhdiv ) 
    476474 
    477475      IF( kt == nittrc000 ) THEN 
     
    527525         IF( ln_bdy ) wn(:,:,jk) = wn(:,:,jk) * bdytmask(:,:) 
    528526      END DO 
    529       ! 
    530       CALL wrk_dealloc( jpi,jpj,   zhdiv ) 
    531527      ! 
    532528      IF( ln_timing )   CALL timing_stop('trc_sub_ssh') 
Note: See TracChangeset for help on using the changeset viewer.