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 7910 for branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC – NEMO

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

All wrk_alloc removed

Location:
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC
Files:
107 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    r7646 r7910  
    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_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r5025 r7910  
    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      !!---------------------------------------------------------------------- 
     98 
    10299 
    103100      ! Arrays, scalars initialization  
     
    208205      ENDDO 
    209206 
    210       CALL wrk_dealloc( jpi,jpj, ztab2d_1, ztab2d_2 ) 
    211       CALL wrk_dealloc( jpi,jpj,jpk, zmask1, zmask2, ztab3d_1, ztab3d_2 ) 
    212207      ! 
    213208   END SUBROUTINE prt_ctl 
     
    425420         nrecil, nrecjl, nldil, nleil, nldjl, nlejl 
    426421 
    427       INTEGER, POINTER, DIMENSION(:,:) ::   iimpptl, ijmpptl, ilcitl, ilcjtl   ! workspace 
     422      INTEGER, DIMENSION(isplt,jsplt) ::   iimpptl, ijmpptl, ilcitl, ilcjtl   ! workspace 
    428423      REAL(wp) ::   zidom, zjdom            ! temporary scalars 
    429424      !!---------------------------------------------------------------------- 
    430425 
    431426      ! 
    432       CALL wrk_alloc( isplt, jsplt, ilcitl, ilcjtl, iimpptl, ijmpptl ) 
    433427      ! 
    434428      !  1. Dimension arrays for subdomains 
     
    578572      ! 
    579573      ! 
    580       CALL wrk_dealloc( isplt, jsplt, ilcitl, ilcjtl, iimpptl, ijmpptl ) 
    581574      ! 
    582575      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r7753 r7910  
    6363   USE lbcnfd         ! north fold treatment 
    6464   USE in_out_manager ! I/O manager 
    65    USE wrk_nemo       ! work arrays 
    6665 
    6766   IMPLICIT NONE 
     
    20692068      !! 
    20702069      INTEGER  ::   ierror, localcomm 
    2071       REAL(wp) , POINTER , DIMENSION(:) ::   zwork 
    2072       !!---------------------------------------------------------------------- 
    2073       ! 
    2074       CALL wrk_alloc(NUM , zwork) 
     2070      REAL(wp) , DIMENSION(NUM) ::   zwork 
     2071      !!---------------------------------------------------------------------- 
     2072      ! 
    20752073      localcomm = mpi_comm_opa 
    20762074      IF( PRESENT(kcom) )   localcomm = kcom 
     
    20782076      CALL mpi_allreduce( ptab, zwork, NUM, mpi_double_precision, mpi_max, localcomm, ierror ) 
    20792077      ptab = zwork 
    2080       CALL wrk_dealloc(NUM , zwork) 
    20812078      ! 
    20822079   END SUBROUTINE mppmax_real_multiple 
     
    24662463      ! 
    24672464      ! Since this is just an init routine and these arrays are of length jpnij 
    2468       ! then don't use wrk_nemo module - just allocate and deallocate. 
    24692465      ALLOCATE( kice(jpnij), zwork(jpnij), STAT=ierr ) 
    24702466      IF( ierr /= 0 ) THEN 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90

    r7753 r7910  
    3232   USE lib_mpp        ! distribued memory computing library 
    3333   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 
    34    USE wrk_nemo       ! work arrays 
    3534   USE timing         ! Timing 
    3635 
     
    118117      REAL(wp) ::   zck, zfk,      zbw             !   -      - 
    119118      REAL(wp) ::   zdepu, zdepv                   !   -      - 
    120       REAL(wp), POINTER, DIMENSION(:,:  ) ::  zslpml_hmlpu, zslpml_hmlpv 
    121       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwz, zww 
    122       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zdzr 
    123       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zgru, zgrv 
     119      REAL(wp), DIMENSION(jpi,jpj) ::  zslpml_hmlpu, zslpml_hmlpv 
     120      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwz, zww 
     121      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zdzr 
     122      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zgru, zgrv 
    124123      !!---------------------------------------------------------------------- 
    125124      ! 
    126125      IF( nn_timing == 1 )  CALL timing_start('ldf_slp') 
    127126      ! 
    128       CALL wrk_alloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 
    129       CALL wrk_alloc( jpi,jpj, zslpml_hmlpu, zslpml_hmlpv ) 
    130127 
    131128      zeps   =  1.e-20_wp        !==   Local constant initialization   ==! 
     
    375372      ENDIF 
    376373      ! 
    377       CALL wrk_dealloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 
    378       CALL wrk_dealloc( jpi,jpj, zslpml_hmlpu, zslpml_hmlpv ) 
    379374      ! 
    380375      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp') 
     
    409404      REAL(wp) ::   zdzrho_raw 
    410405      REAL(wp) ::   zbeta0, ze3_e1, ze3_e2 
    411       REAL(wp), POINTER, DIMENSION(:,:)     ::   z1_mlbw 
    412       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zalbet 
    413       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zdxrho , zdyrho, zdzrho     ! Horizontal and vertical density gradients 
    414       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zti_mlb, ztj_mlb            ! for Griffies operator only 
     406      REAL(wp), DIMENSION(jpi,jpj)     ::   z1_mlbw 
     407      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   zalbet 
     408      REAL(wp), DIMENSION(jpi,jpj,jpk,0:1) ::   zdxrho , zdyrho, zdzrho     ! Horizontal and vertical density gradients 
     409      REAL(wp), DIMENSION(jpi,jpj,0:1,0:1) ::   zti_mlb, ztj_mlb            ! for Griffies operator only 
    415410      !!---------------------------------------------------------------------- 
    416411      ! 
    417412      IF( nn_timing == 1 )  CALL timing_start('ldf_slp_triad') 
    418413      ! 
    419       CALL wrk_alloc( jpi,jpj, z1_mlbw ) 
    420       CALL wrk_alloc( jpi,jpj,jpk, zalbet ) 
    421       CALL wrk_alloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho,              klstart = 0  ) 
    422       CALL wrk_alloc( jpi,jpj,  2,2, zti_mlb, ztj_mlb,        kkstart = 0, klstart = 0  ) 
    423414      ! 
    424415      !--------------------------------! 
     
    624615      CALL lbc_lnk( wslp2, 'W', 1. )      ! lateral boundary confition on wslp2 only   ==>>> gm : necessary ? to be checked 
    625616      ! 
    626       CALL wrk_dealloc( jpi,jpj, z1_mlbw ) 
    627       CALL wrk_dealloc( jpi,jpj,jpk, zalbet ) 
    628       CALL wrk_dealloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho,              klstart = 0  ) 
    629       CALL wrk_dealloc( jpi,jpj,  2,2, zti_mlb, ztj_mlb,        kkstart = 0, klstart = 0  ) 
    630617      ! 
    631618      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp_triad') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90

    r7753 r7910  
    3030   USE lib_mpp         ! distribued memory computing library 
    3131   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    32    USE wrk_nemo        ! work arrays 
    3332   USE timing          ! timing 
    3433 
     
    491490      INTEGER  ::   ji, jj, jk    ! dummy loop indices 
    492491      REAL(wp) ::   zfw, ze3w, zn2, z1_f20, zaht, zaht_min, zzaei   ! local scalars 
    493       REAL(wp), DIMENSION(:,:), POINTER ::   zn, zah, zhw, zross, zaeiw   ! 2D workspace 
     492      REAL(wp), DIMENSION(jpi,jpj) ::   zn, zah, zhw, zross, zaeiw   ! 2D workspace 
    494493      !!---------------------------------------------------------------------- 
    495494      ! 
    496495      IF( nn_timing == 1 )   CALL timing_start('ldf_eiv') 
    497496      ! 
    498       CALL wrk_alloc( jpi,jpj,   zn, zah, zhw, zross, zaeiw ) 
    499497      !       
    500498      zn   (:,:) = 0._wp      ! Local initialization 
     
    575573      END DO 
    576574      !   
    577       CALL wrk_dealloc( jpi,jpj,   zn, zah, zhw, zross, zaeiw ) 
    578575      ! 
    579576      IF( nn_timing == 1 )   CALL timing_stop('ldf_eiv') 
     
    610607      REAL(wp) ::   zuwk, zuwk1, zuwi, zuwi1   ! local scalars 
    611608      REAL(wp) ::   zvwk, zvwk1, zvwj, zvwj1   !   -      - 
    612       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zpsi_uw, zpsi_vw 
     609      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zpsi_uw, zpsi_vw 
    613610      !!---------------------------------------------------------------------- 
    614611      ! 
    615612      IF( nn_timing == 1 )   CALL timing_start( 'ldf_eiv_trp') 
    616613      ! 
    617       CALL wrk_alloc( jpi,jpj,jpk,   zpsi_uw, zpsi_vw ) 
    618614 
    619615      IF( kt == kit000 )  THEN 
     
    658654      IF( ln_ldfeiv_dia .AND. cdtype == 'TRA' )   CALL ldf_eiv_dia( zpsi_uw, zpsi_vw ) 
    659655      ! 
    660       CALL wrk_dealloc( jpi,jpj,jpk,   zpsi_uw, zpsi_vw ) 
    661656      ! 
    662657      IF( nn_timing == 1 )   CALL timing_stop( 'ldf_eiv_trp') 
     
    679674      INTEGER  ::   ji, jj, jk    ! dummy loop indices 
    680675      REAL(wp) ::   zztmp   ! local scalar 
    681       REAL(wp), DIMENSION(:,:)  , POINTER ::   zw2d   ! 2D workspace 
    682       REAL(wp), DIMENSION(:,:,:), POINTER ::   zw3d   ! 3D workspace 
     676      REAL(wp), DIMENSION(jpi,jpj)  ::   zw2d   ! 2D workspace 
     677      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zw3d   ! 3D workspace 
    683678      !!---------------------------------------------------------------------- 
    684679      ! 
     
    693688      ! 
    694689      !                                                  !==  eiv velocities: calculate and output  ==! 
    695       CALL wrk_alloc( jpi,jpj,jpk,   zw3d ) 
    696690      ! 
    697691      zw3d(:,:,jpk) = 0._wp                                    ! bottom value always 0 
     
    720714      !       
    721715      ! 
    722       CALL wrk_alloc( jpi,jpj,   zw2d ) 
    723716      ! 
    724717      zztmp = 0.5_wp * rau0 * rcp  
     
    792785      IF( ln_diaptr ) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d ) 
    793786      ! 
    794       CALL wrk_dealloc( jpi,jpj,   zw2d ) 
    795       CALL wrk_dealloc( jpi,jpj,jpk,   zw3d ) 
    796787      ! 
    797788      IF( nn_timing == 1 )  CALL timing_stop( 'ldf_eiv_dia')       
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r6140 r7910  
    1515   !!---------------------------------------------------------------------- 
    1616   !! * Modules used 
    17    USE wrk_nemo                 ! Memory Allocation 
    1817   USE par_kind                 ! Precision variables 
    1918   USE in_out_manager           ! I/O manager 
     
    144143      REAL(dp) :: rn_dobsini     ! Obs window start date YYYYMMDD.HHMMSS 
    145144      REAL(dp) :: rn_dobsend     ! Obs window end date   YYYYMMDD.HHMMSS 
    146       REAL(wp), POINTER, DIMENSION(:,:) :: & 
    147          & zglam1, &             ! Model longitudes for profile variable 1 
    148          & zglam2                ! Model longitudes for profile variable 2 
    149       REAL(wp), POINTER, DIMENSION(:,:) :: & 
    150          & zgphi1, &             ! Model latitudes for profile variable 1 
    151          & zgphi2                ! Model latitudes for profile variable 2 
    152       REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
    153          & zmask1, &             ! Model land/sea mask associated with variable 1 
    154          & zmask2                ! Model land/sea mask associated with variable 2 
     145      REAL(wp), DIMENSION(jpi,jpj) ::  zglam1   ! Model longitudes for profile variable 1 
     146      REAL(wp), DIMENSION(jpi,jpj) ::  zglam2   ! Model longitudes for profile variable 2 
     147      REAL(wp), DIMENSION(jpi,jpj) ::  zgphi1   ! Model latitudes for profile variable 1 
     148      REAL(wp), DIMENSION(jpi,jpj) ::  zgphi2   ! Model latitudes for profile variable 2 
     149      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask1  ! Model land/sea mask associated with variable 1 
     150      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask2  ! Model land/sea mask associated with variable 2 
    155151 
    156152      NAMELIST/namobs/ln_diaobs, ln_t3d, ln_s3d, ln_sla,              & 
     
    168164 
    169165      INTEGER :: jnumsstbias 
    170       CALL wrk_alloc( jpi, jpj, zglam1 ) 
    171       CALL wrk_alloc( jpi, jpj, zglam2 ) 
    172       CALL wrk_alloc( jpi, jpj, zgphi1 ) 
    173       CALL wrk_alloc( jpi, jpj, zgphi2 ) 
    174       CALL wrk_alloc( jpi, jpj, jpk, zmask1 ) 
    175       CALL wrk_alloc( jpi, jpj, jpk, zmask2 ) 
    176166 
    177167      !----------------------------------------------------------------------- 
     
    492482      ENDIF 
    493483 
    494       CALL wrk_dealloc( jpi, jpj, zglam1 ) 
    495       CALL wrk_dealloc( jpi, jpj, zglam2 ) 
    496       CALL wrk_dealloc( jpi, jpj, zgphi1 ) 
    497       CALL wrk_dealloc( jpi, jpj, zgphi2 ) 
    498       CALL wrk_dealloc( jpi, jpj, jpk, zmask1 ) 
    499       CALL wrk_dealloc( jpi, jpj, jpk, zmask2 ) 
    500484 
    501485   END SUBROUTINE dia_obs_init 
     
    554538      INTEGER :: jvar              ! Variable number 
    555539      INTEGER :: ji, jj            ! Loop counters 
    556       REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
    557          & zprofvar1, &            ! Model values for 1st variable in a prof ob 
    558          & zprofvar2               ! Model values for 2nd variable in a prof ob 
    559       REAL(wp), POINTER, DIMENSION(:,:,:) :: & 
    560          & zprofmask1, &           ! Mask associated with zprofvar1 
    561          & zprofmask2              ! Mask associated with zprofvar2 
    562       REAL(wp), POINTER, DIMENSION(:,:) :: & 
    563          & zsurfvar                ! Model values equivalent to surface ob. 
    564       REAL(wp), POINTER, DIMENSION(:,:) :: & 
    565          & zglam1,    &            ! Model longitudes for prof variable 1 
    566          & zglam2,    &            ! Model longitudes for prof variable 2 
    567          & zgphi1,    &            ! Model latitudes for prof variable 1 
    568          & zgphi2                  ! Model latitudes for prof variable 2 
    569 #if ! defined key_lim2 && ! defined key_lim3 
    570       REAL(wp), POINTER, DIMENSION(:,:) :: frld 
     540      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofvar1     ! Model values for 1st variable in a prof ob 
     541      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofvar2     ! Model values for 2nd variable in a prof ob 
     542      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofmask1    ! Mask associated with zprofvar1 
     543      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofmask2    ! Mask associated with zprofvar2 
     544      REAL(wp), DIMENSION(jpi,jpj) ::   zsurfvar      ! Model values equivalent to surface ob. 
     545      REAL(wp), DIMENSION(jpi,jpj) ::   zglam1        ! Model longitudes for prof variable 1 
     546      REAL(wp), DIMENSION(jpi,jpj) ::   zglam2        ! Model longitudes for prof variable 2 
     547      REAL(wp), DIMENSION(jpi,jpj) ::   zgphi1        ! Model latitudes for prof variable 1 
     548      REAL(wp), DIMENSION(jpi,jpj) ::   zgphi2        ! Model latitudes for prof variable 2 
     549#if ! defined key_lim2  ! defined key_lim3 
     550      REAL(wp), DIMENSION(jpi,jpj) :: frld 
    571551#endif 
    572552      LOGICAL :: llnightav        ! Logical for calculating night-time average 
    573553 
    574554      !Allocate local work arrays 
    575       CALL wrk_alloc( jpi, jpj, jpk, zprofvar1 ) 
    576       CALL wrk_alloc( jpi, jpj, jpk, zprofvar2 ) 
    577       CALL wrk_alloc( jpi, jpj, jpk, zprofmask1 ) 
    578       CALL wrk_alloc( jpi, jpj, jpk, zprofmask2 ) 
    579       CALL wrk_alloc( jpi, jpj, zsurfvar ) 
    580       CALL wrk_alloc( jpi, jpj, zglam1 ) 
    581       CALL wrk_alloc( jpi, jpj, zglam2 ) 
    582       CALL wrk_alloc( jpi, jpj, zgphi1 ) 
    583       CALL wrk_alloc( jpi, jpj, zgphi2 ) 
    584555#if ! defined key_lim2 && ! defined key_lim3 
    585       CALL wrk_alloc(jpi,jpj,frld)  
    586556#endif 
    587557 
     
    693663      ENDIF 
    694664 
    695       CALL wrk_dealloc( jpi, jpj, jpk, zprofvar1 ) 
    696       CALL wrk_dealloc( jpi, jpj, jpk, zprofvar2 ) 
    697       CALL wrk_dealloc( jpi, jpj, jpk, zprofmask1 ) 
    698       CALL wrk_dealloc( jpi, jpj, jpk, zprofmask2 ) 
    699       CALL wrk_dealloc( jpi, jpj, zsurfvar ) 
    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 ) 
    704665#if ! defined key_lim2 && ! defined key_lim3 
    705       CALL wrk_dealloc(jpi,jpj,frld) 
    706666#endif 
    707667 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/OBS/obs_inter_sup.F90

    r6140 r7910  
    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  
    130129 
    131130      ! Check workspace array and set-up pointer 
    132       CALL wrk_alloc(jpi,jpj,1,zval)  
    133131 
    134132      ! Set up local "3D" buffer 
     
    154152 
    155153      ! 'Release' workspace array back to pool 
    156       CALL wrk_dealloc(jpi,jpj,1,zval)  
    157154 
    158155   END SUBROUTINE obs_int_comm_2d 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/OBS/obs_read_altbias.F90

    r6140 r7910  
    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 
     
    107106      INTEGER :: numaltbias 
    108107 
    109       CALL wrk_alloc(jpi,jpj,z_altbias)  
    110108 
    111109      IF(lwp)WRITE(numout,*)  
     
    201199         & ) 
    202200          
    203       CALL wrk_dealloc(jpi,jpj,z_altbias)  
    204201 
    205202   END SUBROUTINE obs_rea_altbias 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/OBS/obs_readmdt.F90

    r6140 r7910  
    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      !!---------------------------------------------------------------------- 
    8281 
    83       CALL wrk_alloc(jpi,jpj,z_mdt,mdtmask)  
    8482 
    8583      IF(lwp)WRITE(numout,*)  
     
    167165         & ) 
    168166 
    169       CALL wrk_dealloc(jpi,jpj,z_mdt,mdtmask)  
    170167      IF(lwp)WRITE(numout,*) ' ------------- ' 
    171168      ! 
     
    192189      INTEGER  :: ji, jj 
    193190      REAL(wp) :: zdxdy, zarea, zeta1, zeta2, zcorr_mdt, zcorr_bcketa, zcorr     ! local scalar 
    194       REAL(wp), POINTER, DIMENSION(:,:) :: zpromsk 
     191      REAL(wp), DIMENSION(jpi,jpj) :: zpromsk 
    195192      CHARACTER(LEN=14), PARAMETER ::   cpname = 'obs_offset_mdt' 
    196193      !!---------------------------------------------------------------------- 
    197194 
    198       CALL wrk_alloc( jpi,jpj, zpromsk ) 
    199195 
    200196      !  Initialize the local mask, for domain projection  
     
    258254      IF ( nn_msshc == 2 ) WRITE(numout,*) '           User defined MSSH correction'  
    259255 
    260       CALL wrk_dealloc( jpi,jpj, zpromsk ) 
    261256      ! 
    262257   END SUBROUTINE obs_offset_mdt 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/OBS/obs_rot_vel.F90

    r6140 r7910  
    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)  
    229226 
    230227   END SUBROUTINE obs_rotvel 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90

    r7813 r7910  
    2020   USE in_out_manager ! I/O manager 
    2121   USE lib_mpp        ! MPP library 
    22    USE wrk_nemo       ! work arrays 
    2322   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2423 
     
    9190      REAL(wp)            ::   zswitch, z1_c1, z1_c2 
    9291      REAL(wp)                            ::   zalb_sm, zalb_sf, zalb_st ! albedo of snow melting, freezing, total 
    93       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb, zalb_it             ! intermediate variable & albedo of ice (snow free) 
     92      REAL(wp), DIMENSION(jpi,jpj,SIZE(pt_ice,3)) ::   zalb, zalb_it             ! intermediate variable & albedo of ice (snow free) 
    9493      !!--------------------------------------------------------------------- 
    9594 
    9695      ijpl = SIZE( pt_ice, 3 )                     ! number of ice categories 
    9796       
    98       CALL wrk_alloc( jpi,jpj,ijpl, zalb, zalb_it ) 
    9997 
    10098      IF( albd_init == 0 )   CALL albedo_init      ! initialization  
     
    206204      END SELECT 
    207205       
    208       CALL wrk_dealloc( jpi,jpj,ijpl, zalb, zalb_it ) 
    209206      ! 
    210207   END SUBROUTINE albedo_ice 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/cyclone.F90

    r7646 r7910  
    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      ! 
     
    8988      !!-------------------------------------------------------------------- 
    9089 
    91       CALL wrk_alloc( jpi,jpj, zwnd_x, zwnd_y ) 
    9290 
    9391      !                                         ! ====================== ! 
     
    271269      CALL rot_rep ( zwnd_x, zwnd_y, 'T', 'en->j', pwnd_j ) !rotation of components on ORCA grid 
    272270 
    273       CALL wrk_dealloc( jpi,jpj, zwnd_x, zwnd_y ) 
    274271 
    275272   END SUBROUTINE wnd_cyc 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r7646 r7910  
    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    
     
    11451144      INTEGER ::   iv              ! indice of V component 
    11461145      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 ) 
     1146      REAL(wp), DIMENSION(jpi,jpj) ::   utmp, vtmp   ! temporary arrays for vector rotation 
     1147      !!--------------------------------------------------------------------- 
     1148      ! 
    11511149      ! 
    11521150      !! (sga: following code should be modified so that pairs arent searched for each time 
     
    11851183       END DO 
    11861184      ! 
    1187       CALL wrk_dealloc( jpi,jpj,   utmp, vtmp ) 
    11881185      ! 
    11891186   END SUBROUTINE fld_rot 
     
    14381435      CHARACTER (len=5) ::   aname   ! 
    14391436      INTEGER , DIMENSION(:), ALLOCATABLE ::   ddims 
    1440       INTEGER , POINTER, DIMENSION(:,:) ::   data_src 
    1441       REAL(wp), POINTER, DIMENSION(:,:) ::   data_tmp 
     1437      INTEGER , DIMENSION(jpi,jpj) ::   data_src 
     1438      REAL(wp), DIMENSION(jpi,jpj) ::   data_tmp 
    14421439      !!---------------------------------------------------------------------- 
    14431440      ! 
    1444       CALL wrk_alloc( jpi,jpj,   data_src )   ! integer 
    1445       CALL wrk_alloc( jpi,jpj,   data_tmp ) 
    14461441      ! 
    14471442      IF( nxt_wgt > tot_wgts ) THEN 
     
    15621557      DEALLOCATE (ddims ) 
    15631558 
    1564       CALL wrk_dealloc( jpi,jpj, data_src )   ! integer 
    1565       CALL wrk_dealloc( jpi,jpj, data_tmp ) 
    15661559      ! 
    15671560   END SUBROUTINE fld_weight 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90

    r7753 r7910  
    5454   USE in_out_manager ! I/O manager 
    5555   USE lib_mpp        ! distribued memory computing library 
    56    USE wrk_nemo       ! work arrays 
    5756   USE timing         ! Timing 
    5857   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
     
    360359      INTEGER  ::   ji, jj               ! dummy loop indices 
    361360      REAL(wp) ::   zztmp                ! local variable 
    362       REAL(wp), DIMENSION(:,:), POINTER ::   zwnd_i, zwnd_j    ! wind speed components at T-point 
    363       REAL(wp), DIMENSION(:,:), POINTER ::   zsq               ! specific humidity at pst 
    364       REAL(wp), DIMENSION(:,:), POINTER ::   zqlw, zqsb        ! long wave and sensible heat fluxes 
    365       REAL(wp), DIMENSION(:,:), POINTER ::   zqla, zevap       ! latent heat fluxes and evaporation 
    366       REAL(wp), DIMENSION(:,:), POINTER ::   Cd                ! transfer coefficient for momentum      (tau) 
    367       REAL(wp), DIMENSION(:,:), POINTER ::   Ch                ! transfer coefficient for sensible heat (Q_sens) 
    368       REAL(wp), DIMENSION(:,:), POINTER ::   Ce                ! tansfert coefficient for evaporation   (Q_lat) 
    369       REAL(wp), DIMENSION(:,:), POINTER ::   zst               ! surface temperature in Kelvin 
    370       REAL(wp), DIMENSION(:,:), POINTER ::   zt_zu             ! air temperature at wind speed height 
    371       REAL(wp), DIMENSION(:,:), POINTER ::   zq_zu             ! air spec. hum.  at wind speed height 
    372       REAL(wp), DIMENSION(:,:), POINTER ::   zU_zu             ! bulk wind speed at height zu  [m/s] 
    373       REAL(wp), DIMENSION(:,:), POINTER ::   ztpot             ! potential temperature of air at z=rn_zqt [K] 
    374       REAL(wp), DIMENSION(:,:), POINTER ::   zrhoa             ! density of air   [kg/m^3] 
     361      REAL(wp), DIMENSION(jpi,jpj) ::   zwnd_i, zwnd_j    ! wind speed components at T-point 
     362      REAL(wp), DIMENSION(jpi,jpj) ::   zsq               ! specific humidity at pst 
     363      REAL(wp), DIMENSION(jpi,jpj) ::   zqlw, zqsb        ! long wave and sensible heat fluxes 
     364      REAL(wp), DIMENSION(jpi,jpj) ::   zqla, zevap       ! latent heat fluxes and evaporation 
     365      REAL(wp), DIMENSION(jpi,jpj) ::   Cd                ! transfer coefficient for momentum      (tau) 
     366      REAL(wp), DIMENSION(jpi,jpj) ::   Ch                ! transfer coefficient for sensible heat (Q_sens) 
     367      REAL(wp), DIMENSION(jpi,jpj) ::   Ce                ! tansfert coefficient for evaporation   (Q_lat) 
     368      REAL(wp), DIMENSION(jpi,jpj) ::   zst               ! surface temperature in Kelvin 
     369      REAL(wp), DIMENSION(jpi,jpj) ::   zt_zu             ! air temperature at wind speed height 
     370      REAL(wp), DIMENSION(jpi,jpj) ::   zq_zu             ! air spec. hum.  at wind speed height 
     371      REAL(wp), DIMENSION(jpi,jpj) ::   zU_zu             ! bulk wind speed at height zu  [m/s] 
     372      REAL(wp), DIMENSION(jpi,jpj) ::   ztpot             ! potential temperature of air at z=rn_zqt [K] 
     373      REAL(wp), DIMENSION(jpi,jpj) ::   zrhoa             ! density of air   [kg/m^3] 
    375374      !!--------------------------------------------------------------------- 
    376375      ! 
    377376      IF( nn_timing == 1 )  CALL timing_start('blk_oce') 
    378377      ! 
    379       CALL wrk_alloc( jpi,jpj,   zwnd_i, zwnd_j, zsq, zqlw, zqsb, zqla, zevap ) 
    380       CALL wrk_alloc( jpi,jpj,   Cd, Ch, Ce, zst, zt_zu, zq_zu ) 
    381       CALL wrk_alloc( jpi,jpj,   zU_zu, ztpot, zrhoa ) 
    382378      ! 
    383379 
     
    565561      ENDIF 
    566562      ! 
    567       CALL wrk_dealloc( jpi,jpj,   zwnd_i, zwnd_j, zsq, zqlw, zqsb, zqla, zevap ) 
    568       CALL wrk_dealloc( jpi,jpj,   Cd, Ch, Ce, zst, zt_zu, zq_zu ) 
    569       CALL wrk_dealloc( jpi,jpj,   zU_zu, ztpot, zrhoa ) 
    570563      ! 
    571564      IF( nn_timing == 1 )  CALL timing_stop('blk_oce') 
     
    587580      INTEGER  ::   ji, jj    ! dummy loop indices 
    588581      ! 
    589       REAL(wp), DIMENSION(:,:)  , POINTER :: zrhoa 
     582      REAL(wp), DIMENSION(jpi,jpj)  :: zrhoa 
    590583      ! 
    591584      REAL(wp) ::   zwnorm_f, zwndi_f , zwndj_f               ! relative wind module and components at F-point 
    592585      REAL(wp) ::             zwndi_t , zwndj_t               ! relative wind components at T-point 
    593       REAL(wp), DIMENSION(:,:), POINTER ::   Cd               ! transfer coefficient for momentum      (tau) 
     586      REAL(wp), DIMENSION(jpi,jpj) ::   Cd               ! transfer coefficient for momentum      (tau) 
    594587      !!--------------------------------------------------------------------- 
    595588      ! 
    596589      IF( nn_timing == 1 )  CALL timing_start('blk_ice_tau') 
    597590      ! 
    598       CALL wrk_alloc( jpi,jpj, zrhoa ) 
    599       CALL wrk_alloc( jpi,jpj, Cd ) 
    600591 
    601592      Cd(:,:) = Cd_ice 
     
    699690      REAL(wp) ::   zcoef_dqlw, zcoef_dqla   !   -      - 
    700691      REAL(wp) ::   zztmp, z1_lsub           !   -      - 
    701       REAL(wp), DIMENSION(:,:,:), POINTER ::   z_qlw         ! long wave heat flux over ice 
    702       REAL(wp), DIMENSION(:,:,:), POINTER ::   z_qsb         ! sensible  heat flux over ice 
    703       REAL(wp), DIMENSION(:,:,:), POINTER ::   z_dqlw        ! long wave heat sensitivity over ice 
    704       REAL(wp), DIMENSION(:,:,:), POINTER ::   z_dqsb        ! sensible  heat sensitivity over ice 
    705       REAL(wp), DIMENSION(:,:)  , POINTER ::   zevap, zsnw   ! evaporation and snw distribution after wind blowing (LIM3) 
    706       REAL(wp), DIMENSION(:,:)  , POINTER ::   zrhoa 
    707       REAL(wp), DIMENSION(:,:)  , POINTER ::   Cd            ! transfer coefficient for momentum      (tau) 
     692      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z_qlw         ! long wave heat flux over ice 
     693      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z_qsb         ! sensible  heat flux over ice 
     694      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z_dqlw        ! long wave heat sensitivity over ice 
     695      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z_dqsb        ! sensible  heat sensitivity over ice 
     696      REAL(wp), DIMENSION(jpi,jpj)  ::   zevap, zsnw   ! evaporation and snw distribution after wind blowing (LIM3) 
     697      REAL(wp), DIMENSION(jpi,jpj)  ::   zrhoa 
     698      REAL(wp), DIMENSION(jpi,jpj)  ::   Cd            ! transfer coefficient for momentum      (tau) 
    708699      !!--------------------------------------------------------------------- 
    709700      ! 
    710701      IF( nn_timing == 1 )  CALL timing_start('blk_ice_flx') 
    711702      ! 
    712       CALL wrk_alloc( jpi,jpj,jpl,   z_qlw, z_qsb, z_dqlw, z_dqsb ) 
    713       CALL wrk_alloc( jpi,jpj,       zrhoa) 
    714       CALL wrk_alloc( jpi,jpj, Cd ) 
    715703 
    716704      Cd(:,:) = Cd_ice 
     
    787775 
    788776#if defined  key_lim3 
    789       CALL wrk_alloc( jpi,jpj,   zevap, zsnw ) 
    790777 
    791778      ! --- evaporation --- ! 
     
    823810      END DO 
    824811 
    825       CALL wrk_dealloc( jpi,jpj,   zevap, zsnw ) 
    826812#endif 
    827813 
     
    844830      ENDIF 
    845831 
    846       CALL wrk_dealloc( jpi,jpj,jpl,   z_qlw, z_qsb, z_dqlw, z_dqsb ) 
    847       CALL wrk_dealloc( jpi,jpj,       zrhoa ) 
    848       CALL wrk_dealloc( jpi,jpj, Cd ) 
    849832      ! 
    850833      IF( nn_timing == 1 )  CALL timing_stop('blk_ice_flx') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare.F90

    r7646 r7910  
    3939   USE iom            ! I/O manager library 
    4040   USE lib_mpp        ! distribued memory computing library 
    41    USE wrk_nemo       ! work arrays 
    4241   USE timing         ! Timing 
    4342   USE prtctl         ! Print control 
     
    111110      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    112111 
    113       REAL(wp), DIMENSION(:,:), POINTER  ::  & 
    114          &  u_star, t_star, q_star, & 
    115          &  dt_zu, dq_zu,    & 
    116          &  znu_a,           & !: Nu_air, Viscosity of air 
    117          &  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 
     112      REAL(wp), DIMENSION(jpi,jpj) ::          u_star, t_star, q_star 
     113      REAL(wp), DIMENSION(jpi,jpj) ::          dt_zu, dq_zu     
     114      REAL(wp), DIMENSION(jpi,jpj) ::          znu_a            !: Nu_air, Viscosity of air 
     115      REAL(wp), DIMENSION(jpi,jpj) ::          z0, z0t 
     116      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
     117      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_t        ! stability parameter at height zt 
     118      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
    121119      !!---------------------------------------------------------------------- 
    122120      ! 
    123121      IF( nn_timing == 1 )  CALL timing_start('turb_coare') 
    124122 
    125       CALL wrk_alloc( jpi,jpj,   u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 
    126       CALL wrk_alloc( jpi,jpj,   znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    127123 
    128124      l_zt_equal_zu = .FALSE. 
    129125      IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE.    ! testing "zu == zt" is risky with double precision 
    130126 
    131       IF( .NOT. l_zt_equal_zu )   CALL wrk_alloc( jpi,jpj, zeta_t ) 
    132127 
    133128      !! First guess of temperature and humidity at height zu: 
     
    246241      Ce   = ztmp0*q_star/dq_zu 
    247242      ! 
    248       CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu ) 
    249       CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    250       IF( .NOT. l_zt_equal_zu ) CALL wrk_dealloc( jpi,jpj, zeta_t ) 
    251243 
    252244      IF( nn_timing == 1 )  CALL timing_stop('turb_coare') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare3p5.F90

    r7646 r7910  
    3838   USE iom             ! I/O manager library 
    3939   USE lib_mpp         ! distribued memory computing library 
    40    USE wrk_nemo        ! work arrays 
    4140   USE timing          ! Timing 
    4241   USE in_out_manager  ! I/O manager 
     
    110109      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    111110      ! 
    112       REAL(wp), DIMENSION(:,:), POINTER  ::  & 
    113          &  u_star, t_star, q_star, & 
    114          &  dt_zu, dq_zu,    & 
    115          &  znu_a,           & !: Nu_air, Viscosity of air 
    116          &  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 
     111 
     112      REAL(wp), DIMENSION(jpi,jpj) ::   u_star, t_star, q_star  
     113      REAL(wp), DIMENSION(jpi,jpj) ::   dt_zu, dq_zu     
     114      REAL(wp), DIMENSION(jpi,jpj) ::   znu_a            !: Nu_air, Viscosity of air 
     115      REAL(wp), DIMENSION(jpi,jpj) ::   z0, z0t 
     116      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
     117      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_t        ! stability parameter at height zt 
     118      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
    120119      !!---------------------------------------------------------------------------------- 
    121120      ! 
    122121      IF( nn_timing == 1 )  CALL timing_start('turb_coare3p5') 
    123122 
    124       CALL wrk_alloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 
    125       CALL wrk_alloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    126123 
    127124      l_zt_equal_zu = .FALSE. 
    128125      IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE.    ! testing "zu == zt" is risky with double precision 
    129126 
    130       IF( .NOT. l_zt_equal_zu )   CALL wrk_alloc( jpi,jpj, zeta_t ) 
    131127 
    132128      !! First guess of temperature and humidity at height zu: 
     
    252248      Ce   = ztmp0*q_star/dq_zu 
    253249      ! 
    254       CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu ) 
    255       CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    256       IF( .NOT. l_zt_equal_zu ) CALL wrk_dealloc( jpi,jpj, zeta_t ) 
    257250 
    258251      IF( nn_timing == 1 )  CALL timing_stop('turb_coare3p5') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_ecmwf.F90

    r7646 r7910  
    3232   USE iom             ! I/O manager library 
    3333   USE lib_mpp         ! distribued memory computing library 
    34    USE wrk_nemo        ! work arrays 
    3534   USE timing          ! Timing 
    3635   USE in_out_manager  ! I/O manager 
     
    117116      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    118117      ! 
    119       REAL(wp), DIMENSION(:,:), POINTER  ::   u_star, t_star, q_star,   & 
    120          &  dt_zu, dq_zu,    & 
    121          &  znu_a,           & !: Nu_air, Viscosity of air 
    122          &  Linv,            & !: 1/L (inverse of Monin Obukhov length... 
    123          &  z0, z0t, z0q 
    124       REAL(wp), DIMENSION(:,:), POINTER ::   func_m, func_h 
    125       REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
     118      REAL(wp), DIMENSION(jpi,jpj) ::   u_star, t_star, q_star    
     119      REAL(wp), DIMENSION(jpi,jpj) ::   dt_zu, dq_zu     
     120      REAL(wp), DIMENSION(jpi,jpj) ::   znu_a            !: Nu_air, Viscosity of air 
     121      REAL(wp), DIMENSION(jpi,jpj) ::   Linv            !: 1/L (inverse of Monin Obukhov length... 
     122      REAL(wp), DIMENSION(jpi,jpj) ::   z0, z0t, z0q 
     123      REAL(wp), DIMENSION(jpi,jpj) ::   func_m, func_h 
     124      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
    126125      !!---------------------------------------------------------------------------------- 
    127126      ! 
    128127      IF( nn_timing == 1 )   CALL timing_start('turb_ecmwf') 
    129128      ! 
    130       CALL wrk_alloc( jpi,jpj,   u_star, t_star, q_star, func_m, func_h, dt_zu, dq_zu, Linv ) 
    131       CALL wrk_alloc( jpi,jpj,   znu_a, z0, z0t, z0q, ztmp0, ztmp1, ztmp2 ) 
    132129      ! 
    133130      ! Identical first gess as in COARE, with IFS parameter values though 
     
    281278      Ce = vkarmn*vkarmn/(func_m*ztmp1) 
    282279 
    283       CALL wrk_dealloc( jpi,jpj,   u_star, t_star, q_star, func_m, func_h, dt_zu, dq_zu, Linv ) 
    284       CALL wrk_dealloc( jpi,jpj,   znu_a, z0, z0t, z0q, ztmp0, ztmp1, ztmp2 ) 
    285280      ! 
    286281      IF( nn_timing == 1 )   CALL timing_stop('turb_ecmwf') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_ncar.F90

    r7753 r7910  
    3434   USE iom             ! I/O manager library 
    3535   USE lib_mpp         ! distribued memory computing library 
    36    USE wrk_nemo        ! work arrays 
    3736   USE timing          ! Timing 
    3837   USE in_out_manager  ! I/O manager 
     
    117116      INTEGER , PARAMETER ::   nb_itt = 4       ! number of itterations 
    118117      ! 
    119       REAL(wp), DIMENSION(:,:), POINTER ::   Cx_n10        ! 10m neutral latent/sensible coefficient 
    120       REAL(wp), DIMENSION(:,:), POINTER ::   sqrt_Cd_n10   ! root square of Cd_n10 
    121       REAL(wp), DIMENSION(:,:), POINTER ::   zeta_u        ! stability parameter at height zu 
    122       REAL(wp), DIMENSION(:,:), POINTER ::   zpsi_h_u 
    123       REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
    124       REAL(wp), DIMENSION(:,:), POINTER ::   stab          ! stability test integer 
     118      REAL(wp), DIMENSION(jpi,jpj) ::   Cx_n10        ! 10m neutral latent/sensible coefficient 
     119      REAL(wp), DIMENSION(jpi,jpj) ::   sqrt_Cd_n10   ! root square of Cd_n10 
     120      REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
     121      REAL(wp), DIMENSION(jpi,jpj) ::   zpsi_h_u 
     122      REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
     123      REAL(wp), DIMENSION(jpi,jpj) ::   stab          ! stability test integer 
    125124      !!---------------------------------------------------------------------------------- 
    126125      ! 
    127126      IF( nn_timing == 1 )   CALL timing_start('turb_ncar') 
    128127      ! 
    129       CALL wrk_alloc( jpi,jpj,   Cx_n10, sqrt_Cd_n10, zeta_u, stab ) 
    130       CALL wrk_alloc( jpi,jpj,   zpsi_h_u, ztmp0, ztmp1, ztmp2 ) 
    131128      ! 
    132129      l_zt_equal_zu = .FALSE. 
     
    221218      END DO 
    222219 
    223       CALL wrk_dealloc( jpi,jpj,   Cx_n10, sqrt_Cd_n10, zeta_u, stab ) 
    224       CALL wrk_dealloc( jpi,jpj,   zpsi_h_u, ztmp0, ztmp1, ztmp2 ) 
    225220 
    226221      IF( nn_timing == 1 )   CALL timing_stop('turb_ncar') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7815 r7910  
    5050   USE iom            ! NetCDF library 
    5151   USE lib_mpp        ! distribued memory computing library 
    52    USE wrk_nemo       ! work arrays 
    5352   USE timing         ! Timing 
    5453   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
     
    237236      INTEGER ::   jn          ! dummy loop index 
    238237      INTEGER ::   ios, inum   ! Local integer 
    239       REAL(wp), POINTER, DIMENSION(:,:) ::   zacs, zaos 
     238      REAL(wp), DIMENSION(jpi,jpj) ::   zacs, zaos 
    240239      !! 
    241240      NAMELIST/namsbc_cpl/  sn_snd_temp , sn_snd_alb  , sn_snd_thick , sn_snd_crt   , sn_snd_co2,      &  
     
    251250      IF( nn_timing == 1 )   CALL timing_start('sbc_cpl_init') 
    252251      ! 
    253       CALL wrk_alloc( jpi,jpj,   zacs, zaos ) 
    254252 
    255253      ! ================================ ! 
     
    922920      IF( ln_dm2dc .AND. ln_cpl ) ncpl_qsr_freq = 86400 / ncpl_qsr_freq 
    923921 
    924       CALL wrk_dealloc( jpi,jpj,   zacs, zaos ) 
    925922      ! 
    926923      IF( nn_timing == 1 )   CALL timing_stop('sbc_cpl_init') 
     
    990987      REAL(wp) ::   zcdrag = 1.5e-3        ! drag coefficient 
    991988      REAL(wp) ::   zzx, zzy               ! temporary variables 
    992       REAL(wp), POINTER, DIMENSION(:,:) ::   ztx, zty, zmsk, zemp, zqns, zqsr 
     989      REAL(wp), DIMENSION(jpi,jpj) ::   ztx, zty, zmsk, zemp, zqns, zqsr 
    993990      !!---------------------------------------------------------------------- 
    994991      ! 
    995992      IF( nn_timing == 1 )   CALL timing_start('sbc_cpl_rcv') 
    996993      ! 
    997       CALL wrk_alloc( jpi,jpj,   ztx, zty, zmsk, zemp, zqns, zqsr ) 
    998994      ! 
    999995      IF( ln_mixcpl )   zmsk(:,:) = 1. - xcplmask(:,:,0) 
     
    13111307      ENDIF 
    13121308      ! 
    1313       CALL wrk_dealloc( jpi,jpj,   ztx, zty, zmsk, zemp, zqns, zqsr ) 
    13141309      ! 
    13151310      IF( nn_timing == 1 )   CALL timing_stop('sbc_cpl_rcv') 
     
    13561351      INTEGER ::   ji, jj   ! dummy loop indices 
    13571352      INTEGER ::   itx      ! index of taux over ice 
    1358       REAL(wp), POINTER, DIMENSION(:,:) ::   ztx, zty  
     1353      REAL(wp), DIMENSION(jpi,jpj) ::   ztx, zty  
    13591354      !!---------------------------------------------------------------------- 
    13601355      ! 
    13611356      IF( nn_timing == 1 )   CALL timing_start('sbc_cpl_ice_tau') 
    13621357      ! 
    1363       CALL wrk_alloc( jpi,jpj,   ztx, zty ) 
    13641358 
    13651359      IF( srcv(jpr_itx1)%laction ) THEN   ;   itx =  jpr_itx1    
     
    15211515      ENDIF 
    15221516      !    
    1523       CALL wrk_dealloc( jpi,jpj,   ztx, zty ) 
    15241517      ! 
    15251518      IF( nn_timing == 1 )   CALL timing_stop('sbc_cpl_ice_tau') 
     
    15841577      ! 
    15851578      INTEGER ::   jl         ! dummy loop index 
    1586       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw 
    1587       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice 
    1588       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice 
    1589       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice 
     1579      REAL(wp), DIMENSION(jpi,jpj) ::   zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw 
     1580      REAL(wp), DIMENSION(jpi,jpj) ::   zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice 
     1581      REAL(wp), DIMENSION(jpi,jpj) ::   zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice 
     1582      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice 
    15901583      !!---------------------------------------------------------------------- 
    15911584      ! 
    15921585      IF( nn_timing == 1 )  CALL timing_start('sbc_cpl_ice_flx') 
    15931586      ! 
    1594       CALL wrk_alloc( jpi,jpj,     zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
    1595       CALL wrk_alloc( jpi,jpj,     zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice ) 
    1596       CALL wrk_alloc( jpi,jpj,     zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice ) 
    1597       CALL wrk_alloc( jpi,jpj,jpl, zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice ) 
    15981587 
    15991588      IF( ln_mixcpl )   zmsk(:,:) = 1. - xcplmask(:,:,0) 
     
    19801969      fr2_i0(:,:) = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) 
    19811970 
    1982       CALL wrk_dealloc( jpi,jpj,     zcptn, ztmp, zcptrain, zcptsnw, zicefr, zmsk, zsnw ) 
    1983       CALL wrk_dealloc( jpi,jpj,     zemp_tot, zemp_ice, zemp_oce, ztprecip, zsprecip, zevap_oce, zevap_ice, zdevap_ice ) 
    1984       CALL wrk_dealloc( jpi,jpj,     zqns_tot, zqns_oce, zqsr_tot, zqsr_oce, zqprec_ice, zqemp_oce, zqemp_ice ) 
    1985       CALL wrk_dealloc( jpi,jpj,jpl, zqns_ice, zqsr_ice, zdqns_ice, zqevap_ice ) 
    19861971      ! 
    19871972      IF( nn_timing == 1 )   CALL timing_stop('sbc_cpl_ice_flx') 
     
    20041989      INTEGER ::   isec, info   ! local integer 
    20051990      REAL(wp) ::   zumax, zvmax 
    2006       REAL(wp), POINTER, DIMENSION(:,:)   ::   zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 
    2007       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmp3, ztmp4    
     1991      REAL(wp), DIMENSION(jpi,jpj)   ::   zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 
     1992      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   ztmp3, ztmp4    
    20081993      !!---------------------------------------------------------------------- 
    20091994      ! 
    20101995      IF( nn_timing == 1 )   CALL timing_start('sbc_cpl_snd') 
    20111996      ! 
    2012       CALL wrk_alloc( jpi,jpj,       zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
    2013       CALL wrk_alloc( jpi,jpj,jpl,   ztmp3, ztmp4 ) 
    20141997 
    20151998      isec = ( kt - nit000 ) * NINT( rdt )        ! date of exchanges 
     
    24902473      IF( ssnd(jps_taum  )%laction )  CALL cpl_snd( jps_taum  , isec, RESHAPE ( taum, (/jpi,jpj,1/) ), info ) 
    24912474 
    2492       CALL wrk_dealloc( jpi,jpj,       zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
    2493       CALL wrk_dealloc( jpi,jpj,jpl,   ztmp3, ztmp4 ) 
    24942475      ! 
    24952476      IF( nn_timing == 1 )   CALL timing_stop('sbc_cpl_snd') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90

    r6140 r7910  
    2424   USE in_out_manager ! I/O manager 
    2525   USE lib_mpp        ! distribued memory computing library 
    26    USE wrk_nemo       ! work arrays 
    2726   USE timing         ! Timing 
    2827   USE lbclnk         ! ocean lateral boundary conditions 
     
    6968      REAL(wp) ::   z_fwf, z_fwf_nsrf, zsum_fwf, zsum_erp                ! local scalars 
    7069      REAL(wp) ::   zsurf_neg, zsurf_pos, zsurf_tospread, zcoef          !   -      - 
    71       REAL(wp), POINTER, DIMENSION(:,:) ::   ztmsk_neg, ztmsk_pos, z_wgt ! 2D workspaces 
    72       REAL(wp), POINTER, DIMENSION(:,:) ::   ztmsk_tospread, zerp_cor    !   -      - 
     70      REAL(wp), DIMENSION(jpi,jpj) ::   ztmsk_neg, ztmsk_pos, z_wgt ! 2D workspaces 
     71      REAL(wp), DIMENSION(jpi,jpj) ::   ztmsk_tospread, zerp_cor    !   -      - 
    7372      !!---------------------------------------------------------------------- 
    7473      ! 
    7574      IF( nn_timing == 1 )  CALL timing_start('sbc_fwb') 
    7675      ! 
    77       CALL wrk_alloc( jpi,jpj, ztmsk_neg, ztmsk_pos, ztmsk_tospread, z_wgt, zerp_cor ) 
    7876      ! 
    7977      IF( kt == nit000 ) THEN 
     
    208206      END SELECT 
    209207      ! 
    210       CALL wrk_dealloc( jpi,jpj, ztmsk_neg, ztmsk_pos, ztmsk_tospread, z_wgt, zerp_cor ) 
    211208      ! 
    212209      IF( nn_timing == 1 )  CALL timing_stop('sbc_fwb') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r7646 r7910  
    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 timing          ! Timing 
    2221   USE daymod          ! calendar 
     
    160159      !!--------------------------------------------------------------------- 
    161160      INTEGER, INTENT( in  ) ::   ksbc                ! surface forcing type 
    162       REAL(wp), DIMENSION(:,:), POINTER :: ztmp1, ztmp2 
     161      REAL(wp), DIMENSION(jpi,jpj) :: ztmp1, ztmp2 
    163162      REAL(wp) ::   zcoefu, zcoefv, zcoeff            ! local scalar 
    164163      INTEGER  ::   ji, jj, jl, jk                    ! dummy loop indices 
     
    167166      IF( nn_timing == 1 )  CALL timing_start('cice_sbc_init') 
    168167      ! 
    169       CALL wrk_alloc( jpi,jpj, ztmp1, ztmp2 ) 
    170168      ! 
    171169      IF(lwp) WRITE(numout,*)'cice_sbc_init' 
     
    284282      ENDIF 
    285283      ! 
    286       CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 
    287284      ! 
    288285      IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_init') 
     
    300297      ! 
    301298      INTEGER  ::   ji, jj, jl                   ! dummy loop indices       
    302       REAL(wp), DIMENSION(:,:), POINTER :: ztmp, zpice 
    303       REAL(wp), DIMENSION(:,:,:), POINTER :: ztmpn 
     299      REAL(wp), DIMENSION(jpi,jpj) :: ztmp, zpice 
     300      REAL(wp), DIMENSION(jpi,jpj,ncat) :: ztmpn 
    304301      REAL(wp) ::   zintb, zintn  ! dummy argument 
    305302      !!--------------------------------------------------------------------- 
     
    307304      IF( nn_timing == 1 )  CALL timing_start('cice_sbc_in') 
    308305      ! 
    309       CALL wrk_alloc( jpi,jpj, ztmp, zpice ) 
    310       CALL wrk_alloc( jpi,jpj,ncat, ztmpn ) 
    311306 
    312307      IF( kt == nit000 )  THEN 
     
    509504      CALL nemo2cice(ztmp,ss_tlty,'F', -1. ) 
    510505 
    511       CALL wrk_dealloc( jpi,jpj, ztmp, zpice ) 
    512       CALL wrk_dealloc( jpi,jpj,ncat, ztmpn ) 
    513506      ! 
    514507      IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_in') 
     
    526519       
    527520      INTEGER  ::   ji, jj, jl                 ! dummy loop indices 
    528       REAL(wp), DIMENSION(:,:), POINTER :: ztmp1, ztmp2 
     521      REAL(wp), DIMENSION(jpi,jpj) :: ztmp1, ztmp2 
    529522      !!--------------------------------------------------------------------- 
    530523 
    531524      IF( nn_timing == 1 )  CALL timing_start('cice_sbc_out') 
    532525      ! 
    533       CALL wrk_alloc( jpi,jpj, ztmp1, ztmp2 ) 
    534526       
    535527      IF( kt == nit000 )  THEN 
     
    687679! Release work space 
    688680 
    689       CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 
    690681      ! 
    691682      IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_out') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r7777 r7910  
    5858   USE lbclnk          ! lateral boundary condition - MPP link 
    5959   USE lib_mpp         ! MPP library 
    60    USE wrk_nemo        ! work arrays 
    6160   USE timing          ! Timing 
    6261 
     
    110109      !! 
    111110      INTEGER  ::   jl                 ! dummy loop index 
    112       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zalb_os, zalb_cs  ! ice albedo under overcast/clear sky 
    113       REAL(wp), POINTER, DIMENSION(:,:  )   ::   zutau_ice, zvtau_ice  
     111      REAL(wp), DIMENSION(jpi,jpj,jpl)   ::   zalb_os, zalb_cs  ! ice albedo under overcast/clear sky 
     112      REAL(wp), DIMENSION(jpi,jpj)   ::   zutau_ice, zvtau_ice  
    114113      !!---------------------------------------------------------------------- 
    115114 
     
    152151 
    153152         IF( ln_mixcpl) THEN                                                       ! Case of a mixed Bulk/Coupled formulation 
    154             CALL wrk_alloc( jpi,jpj    , zutau_ice, zvtau_ice) 
    155153                                      CALL sbc_cpl_ice_tau( zutau_ice , zvtau_ice ) 
    156154            utau_ice(:,:) = utau_ice(:,:) * xcplmask(:,:,0) + zutau_ice(:,:) * ( 1. - xcplmask(:,:,0) ) 
    157155            vtau_ice(:,:) = vtau_ice(:,:) * xcplmask(:,:,0) + zvtau_ice(:,:) * ( 1. - xcplmask(:,:,0) ) 
    158             CALL wrk_dealloc( jpi,jpj  , zutau_ice, zvtau_ice) 
    159156         ENDIF 
    160157 
     
    206203         ! fr1_i0  , fr2_i0   : 1sr & 2nd fraction of qsr penetration in ice             [%] 
    207204         !---------------------------------------------------------------------------------------- 
    208          CALL wrk_alloc( jpi,jpj,jpl, zalb_os, zalb_cs ) 
    209205          
    210206                                      CALL albedo_ice( t_su, ht_i, ht_s, zalb_cs, zalb_os ) ! cloud-sky and overcast-sky ice albedos 
     
    224220         END SELECT 
    225221 
    226          CALL wrk_dealloc( jpi,jpj,jpl, zalb_os, zalb_cs ) 
    227222 
    228223         !----------------------------! 
     
    524519      INTEGER  ::   jl      ! dummy loop index 
    525520      ! 
    526       REAL(wp), POINTER, DIMENSION(:,:) :: zalb_m    ! Mean albedo over all categories 
    527       REAL(wp), POINTER, DIMENSION(:,:) :: ztem_m    ! Mean temperature over all categories 
    528       ! 
    529       REAL(wp), POINTER, DIMENSION(:,:) :: z_qsr_m   ! Mean solar heat flux over all categories 
    530       REAL(wp), POINTER, DIMENSION(:,:) :: z_qns_m   ! Mean non solar heat flux over all categories 
    531       REAL(wp), POINTER, DIMENSION(:,:) :: z_evap_m  ! Mean sublimation over all categories 
    532       REAL(wp), POINTER, DIMENSION(:,:) :: z_dqn_m   ! Mean d(qns)/dT over all categories 
    533       REAL(wp), POINTER, DIMENSION(:,:) :: z_devap_m ! Mean d(evap)/dT over all categories 
     521      REAL(wp), DIMENSION(jpi,jpj) :: zalb_m    ! Mean albedo over all categories 
     522      REAL(wp), DIMENSION(jpi,jpj) :: ztem_m    ! Mean temperature over all categories 
     523      ! 
     524      REAL(wp), DIMENSION(jpi,jpj) :: z_qsr_m   ! Mean solar heat flux over all categories 
     525      REAL(wp), DIMENSION(jpi,jpj) :: z_qns_m   ! Mean non solar heat flux over all categories 
     526      REAL(wp), DIMENSION(jpi,jpj) :: z_evap_m  ! Mean sublimation over all categories 
     527      REAL(wp), DIMENSION(jpi,jpj) :: z_dqn_m   ! Mean d(qns)/dT over all categories 
     528      REAL(wp), DIMENSION(jpi,jpj) :: z_devap_m ! Mean d(evap)/dT over all categories 
    534529      !!---------------------------------------------------------------------- 
    535530      ! 
     
    538533      SELECT CASE( k_limflx )                              !==  averaged on all ice categories  ==! 
    539534      CASE( 0 , 1 ) 
    540          CALL wrk_alloc( jpi,jpj, z_qsr_m, z_qns_m, z_evap_m, z_dqn_m, z_devap_m) 
    541535         ! 
    542536         z_qns_m  (:,:) = fice_ice_ave ( pqns_ice (:,:,:) ) 
     
    556550         END DO 
    557551         ! 
    558          CALL wrk_dealloc( jpi,jpj, z_qsr_m, z_qns_m, z_evap_m, z_dqn_m, z_devap_m) 
    559552      END SELECT 
    560553      ! 
    561554      SELECT CASE( k_limflx )                              !==  redistribution on all ice categories  ==! 
    562555      CASE( 1 , 2 ) 
    563          CALL wrk_alloc( jpi,jpj, zalb_m, ztem_m ) 
    564556         ! 
    565557         zalb_m(:,:) = fice_ice_ave ( palb_ice (:,:,:) ) 
     
    571563         END DO 
    572564         ! 
    573          CALL wrk_dealloc( jpi,jpj, zalb_m, ztem_m ) 
    574565      END SELECT 
    575566      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90

    r7646 r7910  
    4343   USE lbclnk           ! lateral boundary condition - MPP link 
    4444   USE lib_mpp          ! MPP library 
    45    USE wrk_nemo         ! work arrays 
    4645   USE iom              ! I/O manager library 
    4746   USE in_out_manager   ! I/O manager 
     
    9493      !! 
    9594      INTEGER  ::   ji, jj   ! dummy loop indices 
    96       REAL(wp), DIMENSION(:,:,:), POINTER :: zalb_os   ! ice albedo under overcast sky 
    97       REAL(wp), DIMENSION(:,:,:), POINTER :: zalb_cs   ! ice albedo under clear sky 
    98       REAL(wp), DIMENSION(:,:,:), POINTER :: zalb_ice  ! mean ice albedo 
    99       REAL(wp), DIMENSION(:,:,:), POINTER :: zsist     ! ice surface temperature (K) 
    100       REAL(wp), DIMENSION(:,:  ), POINTER :: zutau_ice, zvtau_ice  
     95      REAL(wp), DIMENSION(jpi,jpj,1) :: zalb_os   ! ice albedo under overcast sky 
     96      REAL(wp), DIMENSION(jpi,jpj,1) :: zalb_cs   ! ice albedo under clear sky 
     97      REAL(wp), DIMENSION(jpi,jpj,1) :: zalb_ice  ! mean ice albedo 
     98      REAL(wp), DIMENSION(jpi,jpj,1) :: zsist     ! ice surface temperature (K) 
     99      REAL(wp), DIMENSION(jpi,jpj) :: zutau_ice, zvtau_ice  
    101100      !!---------------------------------------------------------------------- 
    102101 
     
    121120# endif 
    122121 
    123          CALL wrk_alloc( jpi,jpj  , zutau_ice, zvtau_ice) 
    124          CALL wrk_alloc( jpi,jpj,1, zalb_os, zalb_cs, zalb_ice, zsist ) 
    125122 
    126123         !  Bulk Formulea ! 
     
    245242# endif 
    246243         ! 
    247          CALL wrk_dealloc( jpi,jpj  , zutau_ice, zvtau_ice) 
    248          CALL wrk_dealloc( jpi,jpj,1, zalb_os, zalb_cs, zalb_ice, zsist ) 
    249244         ! 
    250245      ENDIF                                    ! End sea-ice time step only 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r7816 r7910  
    2424   USE fldread         ! read input field at current time step 
    2525   USE lbclnk          ! 
    26    USE wrk_nemo        ! Memory allocation 
    2726   USE timing          ! Timing 
    2827   USE lib_fortran     ! glob_sum 
     
    9493      INTEGER               :: ji, jj, jk           ! loop index 
    9594      INTEGER               :: ikt, ikb             ! loop index 
    96       REAL(wp), DIMENSION (:,:), POINTER :: zt_frz, zdep ! freezing temperature (zt_frz) at depth (zdep)  
    97       REAL(wp), DIMENSION(:,:,:), POINTER :: zfwfisf3d, zqhcisf3d, zqlatisf3d 
    98       REAL(wp), DIMENSION(:,:  ), POINTER :: zqhcisf2d 
     95      REAL(wp), DIMENSION (jpi,jpj) :: zt_frz, zdep ! freezing temperature (zt_frz) at depth (zdep)  
     96      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zfwfisf3d, zqhcisf3d, zqlatisf3d 
     97      REAL(wp), DIMENSION(jpi,jpj) :: zqhcisf2d 
    9998      !!--------------------------------------------------------------------- 
    10099      ! 
    101100      IF( MOD( kt-1, nn_fsbc) == 0 ) THEN 
    102101         ! allocation 
    103          CALL wrk_alloc( jpi,jpj, zt_frz, zdep  ) 
    104102 
    105103         ! compute salt and heat flux 
     
    173171        ! Diagnostics 
    174172        IF ( iom_use('fwfisf3d') .OR. iom_use('qlatisf3d') .OR. iom_use('qhcisf3d') .OR. iom_use('qhcisf')) THEN 
    175             CALL wrk_alloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 
    176             CALL wrk_alloc( jpi,jpj,     zqhcisf2d                        ) 
    177173 
    178174            zfwfisf3d(:,:,:) = 0.0_wp                         ! 3d ice shelf melting (kg/m2/s) 
     
    201197            CALL iom_put('qhcisf'   , zqhcisf2d (:,:  )) 
    202198 
    203             CALL wrk_dealloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 
    204             CALL wrk_dealloc( jpi,jpj,     zqhcisf2d                        ) 
    205199          END IF 
    206200          ! deallocation 
    207           CALL wrk_dealloc( jpi,jpj, zt_frz, zdep  ) 
    208201          ! 
    209202        END IF 
     
    472465      REAL(wp) ::   zeps = 1.e-20_wp         
    473466      REAL(wp) ::   zerr 
    474       REAL(wp), DIMENSION(:,:), POINTER ::   zfrz 
    475       REAL(wp), DIMENSION(:,:), POINTER ::   zgammat, zgammas  
    476       REAL(wp), DIMENSION(:,:), POINTER ::   zfwflx, zhtflx, zhtflx_b 
     467      REAL(wp), DIMENSION(jpi,jpj) ::   zfrz 
     468      REAL(wp), DIMENSION(jpi,jpj) ::   zgammat, zgammas  
     469      REAL(wp), DIMENSION(jpi,jpj) ::   zfwflx, zhtflx, zhtflx_b 
    477470      LOGICAL  ::   lit 
    478471      !!--------------------------------------------------------------------- 
     
    484477      IF( nn_timing == 1 )  CALL timing_start('sbc_isf_cav') 
    485478      ! 
    486       CALL wrk_alloc( jpi,jpj, zfrz  , zgammat, zgammas  ) 
    487       CALL wrk_alloc( jpi,jpj, zfwflx, zhtflx , zhtflx_b ) 
    488479 
    489480      ! initialisation 
     
    578569      CALL iom_put('isfgammas', zgammas) 
    579570      !  
    580       CALL wrk_dealloc( jpi,jpj, zfrz  , zgammat, zgammas  ) 
    581       CALL wrk_dealloc( jpi,jpj, zfwflx, zhtflx , zhtflx_b ) 
    582571      ! 
    583572      IF( nn_timing == 1 )  CALL timing_stop('sbc_isf_cav') 
     
    600589      INTEGER  :: ikt                         
    601590      INTEGER  :: ji, jj                     ! loop index 
    602       REAL(wp), DIMENSION(:,:), POINTER :: zustar           ! U, V at T point and friction velocity 
     591      REAL(wp), DIMENSION(jpi,jpj) :: zustar           ! U, V at T point and friction velocity 
    603592      REAL(wp) :: zdku, zdkv                 ! U, V shear  
    604593      REAL(wp) :: zPr, zSc, zRc              ! Prandtl, Scmidth and Richardson number  
     
    615604      REAL(wp), DIMENSION(2) :: zts, zab 
    616605      !!--------------------------------------------------------------------- 
    617       CALL wrk_alloc( jpi,jpj, zustar ) 
    618606      ! 
    619607      SELECT CASE ( nn_gammablk ) 
     
    703691         CALL lbc_lnk(pgs(:,:),'T',1.) 
    704692      END SELECT 
    705       CALL wrk_dealloc( jpi,jpj, zustar ) 
    706693      ! 
    707694   END SUBROUTINE sbc_isf_gammats 
     
    719706      ! 
    720707      REAL(wp) :: ze3, zhk 
    721       REAL(wp), DIMENSION(:,:), POINTER :: zhisf_tbl ! thickness of the tbl 
     708      REAL(wp), DIMENSION(jpi,jpj) :: zhisf_tbl ! thickness of the tbl 
    722709 
    723710      INTEGER :: ji, jj, jk                  ! loop index 
     
    725712      !!---------------------------------------------------------------------- 
    726713      ! allocation 
    727       CALL wrk_alloc( jpi,jpj, zhisf_tbl) 
    728714       
    729715      ! initialisation 
     
    816802 
    817803      ! deallocation 
    818       CALL wrk_dealloc( jpi,jpj, zhisf_tbl )       
    819804      ! 
    820805   END SUBROUTINE sbc_isf_tbl 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r7753 r7910  
    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      !                                            !-------------------! 
     
    168166      ENDIF 
    169167      ! 
    170       CALL wrk_dealloc( jpi,jpj, ztfrz) 
    171168      ! 
    172169   END SUBROUTINE sbc_rnf 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r7864 r7910  
    2727   USE lib_mpp        ! distribued memory computing library 
    2828   USE fldread        ! read input fields 
    29    USE wrk_nemo       ! 
    3029 
    3130   IMPLICIT NONE 
     
    8988      REAL(wp) ::  ztransp, zfac, ztemp, zsp0 
    9089      REAL(wp) ::  zdep_u, zdep_v, zkh_u, zkh_v, zda_u, zda_v 
    91       REAL(wp), DIMENSION(:,:)  , POINTER ::   zk_t, zk_u, zk_v, zu0_sd, zv0_sd   ! 2D workspace 
    92       REAL(wp), DIMENSION(:,:,:), POINTER ::   ze3divh                            ! 3D workspace 
    93       !!--------------------------------------------------------------------- 
    94       ! 
    95       CALL wrk_alloc( jpi,jpj,jpk,   ze3divh ) 
    96       CALL wrk_alloc( jpi,jpj,       zk_t, zk_u, zk_v, zu0_sd, zv0_sd ) 
     90      REAL(wp), DIMENSION(jpi,jpj)   ::   zk_t, zk_u, zk_v, zu0_sd, zv0_sd   ! 2D workspace 
     91      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3divh                            ! 3D workspace 
     92      !!--------------------------------------------------------------------- 
     93      ! 
    9794      ! 
    9895      ! 
     
    183180      CALL iom_put( "wstokes",  wsd  ) 
    184181      ! 
    185       CALL wrk_dealloc( jpi,jpj,jpk,   ze3divh ) 
    186       CALL wrk_dealloc( jpi,jpj,       zk_t, zk_u, zk_v, zu0_sd, zv0_sd ) 
    187182      ! 
    188183   END SUBROUTINE sbc_stokes 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90

    r7753 r7910  
    3434   USE prtctl         ! Print control 
    3535   USE lib_mpp        ! MPP library 
    36    USE wrk_nemo       ! Memory Allocation 
    3736   USE timing         ! Timing 
    3837   USE sbcwave        ! wave module 
     
    8988      ! 
    9089      INTEGER ::   jk   ! dummy loop index 
    91       REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn 
    92       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt, ztrds   ! 3D workspace 
     90      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn 
     91      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdt, ztrds   ! 3D workspace 
    9392      !!---------------------------------------------------------------------- 
    9493      ! 
    9594      IF( nn_timing == 1 )  CALL timing_start('tra_adv') 
    9695      ! 
    97       CALL wrk_alloc( jpi,jpj,jpk,   zun, zvn, zwn ) 
    9896      ! 
    9997      !                                          ! set time step 
     
    146144      ! 
    147145      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    148          CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    149146         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    150147         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    175172         CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 
    176173         CALL trd_tra( kt, 'TRA', jp_sal, jptra_totad, ztrds ) 
    177          CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    178174      ENDIF 
    179175      !                                              ! print mean trends (used for debugging) 
     
    183179      IF( nn_timing == 1 )  CALL timing_stop( 'tra_adv' ) 
    184180      ! 
    185       CALL wrk_dealloc( jpi,jpj,jpk,   zun, zvn, zwn ) 
    186181      !                                           
    187182   END SUBROUTINE tra_adv 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen.F90

    r7646 r7910  
    2424   USE trc_oce        ! share passive tracers/Ocean variables 
    2525   USE lib_mpp        ! MPP library 
    26    USE wrk_nemo       ! Memory Allocation 
    2726   USE timing         ! Timing 
    2827 
     
    8079      REAL(wp) ::   zC2t_u, zC4t_u   ! local scalars 
    8180      REAL(wp) ::   zC2t_v, zC4t_v   !   -      - 
    82       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx, zwy, zwz, ztu, ztv, ztw 
     81      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx, zwy, zwz, ztu, ztv, ztw 
    8382      !!---------------------------------------------------------------------- 
    8483      ! 
    8584      IF( nn_timing == 1 )  CALL timing_start('tra_adv_cen') 
    8685      ! 
    87       CALL wrk_alloc( jpi,jpj,jpk,   zwx, zwy, zwz, ztu, ztv, ztw ) 
    8886      ! 
    8987      IF( kt == kit000 )  THEN 
     
    209207      END DO 
    210208      ! 
    211       CALL wrk_dealloc( jpi,jpj,jpk,   zwx, zwy, zwz, ztu, ztv, ztw ) 
    212209      ! 
    213210      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_cen') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90

    r7753 r7910  
    2828   USE lbclnk         ! ocean lateral boundary condition (or mpp link)  
    2929   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    30    USE wrk_nemo       ! Memory Allocation 
    3130   USE timing         ! Timing 
    3231 
     
    8887      REAL(wp) ::   zfp_ui, zfp_vj, zfp_wk, zC2t_u, zC4t_u   !   -      - 
    8988      REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk, zC2t_v, zC4t_v   !   -      - 
    90       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw 
    91       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdx, ztrdy, ztrdz, zptry 
     89      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw 
     90      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdx, ztrdy, ztrdz, zptry 
    9291      REAL(wp), POINTER, DIMENSION(:,:)   :: z2d 
    9392      !!---------------------------------------------------------------------- 
     
    9594      IF( nn_timing == 1 )  CALL timing_start('tra_adv_fct') 
    9695      ! 
    97       CALL wrk_alloc( jpi,jpj,jpk,   zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw ) 
    9896      ! 
    9997      IF( kt == kit000 )  THEN 
     
    112110      ! 
    113111      IF( l_trd .OR. l_hst )  THEN 
    114          CALL wrk_alloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 
    115112         ztrdx(:,:,:) = 0._wp   ;    ztrdy(:,:,:) = 0._wp   ;   ztrdz(:,:,:) = 0._wp 
    116113      ENDIF 
    117114      ! 
    118115      IF( l_ptr ) THEN   
    119          CALL wrk_alloc( jpi, jpj, jpk, zptry ) 
    120116         zptry(:,:,:) = 0._wp 
    121117      ENDIF 
     
    331327      END DO                     ! end of tracer loop 
    332328      ! 
    333                               CALL wrk_dealloc( jpi,jpj,jpk,    zwi, zwx, zwy, zwz, ztu, ztv, zltu, zltv, ztw ) 
    334       IF( l_trd .OR. l_hst )  CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 
    335       IF( l_ptr )             CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 
    336329      ! 
    337330      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_fct') 
     
    376369      REAL(wp) ::   zfp_ui, zfp_vj, zfp_wk   !   -      - 
    377370      REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk   !   -      - 
    378       REAL(wp), POINTER, DIMENSION(:,:  )   ::   zwx_sav , zwy_sav 
    379       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav 
    380       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   ztrdx, ztrdy, ztrdz 
    381       REAL(wp), POINTER, DIMENSION(:,:,:) :: zptry 
    382       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   ztrs 
     371      REAL(wp), DIMENSION(jpi,jpj)   ::   zwx_sav , zwy_sav 
     372      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   zwi, zwx, zwy, zwz, zhdiv, zwzts, zwz_sav 
     373      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   ztrdx, ztrdy, ztrdz 
     374      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zptry 
     375      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt+1) ::   ztrs 
    383376      !!---------------------------------------------------------------------- 
    384377      ! 
    385378      IF( nn_timing == 1 )  CALL timing_start('tra_adv_fct_zts') 
    386379      ! 
    387       CALL wrk_alloc( jpi,jpj,             zwx_sav, zwy_sav ) 
    388       CALL wrk_alloc( jpi,jpj,jpk,         zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav ) 
    389       CALL wrk_alloc( jpi,jpj,jpk,kjpt+1,  ztrs ) 
    390380      ! 
    391381      IF( kt == kit000 )  THEN 
     
    404394      ! 
    405395      IF( l_trd .OR. l_hst )  THEN 
    406          CALL wrk_alloc( jpi,jpj,jpk,   ztrdx, ztrdy, ztrdz ) 
    407396         ztrdx(:,:,:) = 0._wp  ;    ztrdy(:,:,:) = 0._wp  ;   ztrdz(:,:,:) = 0._wp 
    408397      ENDIF 
    409398      ! 
    410399      IF( l_ptr ) THEN   
    411          CALL wrk_alloc( jpi, jpj,jpk, zptry ) 
    412400         zptry(:,:,:) = 0._wp 
    413401      ENDIF 
     
    621609      END DO 
    622610      ! 
    623                               CALL wrk_alloc( jpi,jpj,             zwx_sav, zwy_sav ) 
    624                               CALL wrk_alloc( jpi,jpj, jpk,        zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav ) 
    625                               CALL wrk_alloc( jpi,jpj,jpk,kjpt+1,  ztrs ) 
    626       IF( l_trd .OR. l_hst )  CALL wrk_dealloc( jpi, jpj, jpk, ztrdx, ztrdy, ztrdz ) 
    627       IF( l_ptr )             CALL wrk_dealloc( jpi, jpj, jpk, zptry ) 
    628611      ! 
    629612      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_fct_zts') 
     
    653636      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn    ! local scalars 
    654637      REAL(wp) ::   zau, zbu, zcu, zav, zbv, zcv, zup, zdo            !   -      - 
    655       REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo, zbup, zbdo 
     638      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zbetup, zbetdo, zbup, zbdo 
    656639      !!---------------------------------------------------------------------- 
    657640      ! 
    658641      IF( nn_timing == 1 )  CALL timing_start('nonosc') 
    659642      ! 
    660       CALL wrk_alloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo ) 
    661643      ! 
    662644      zbig  = 1.e+40_wp 
     
    734716      CALL lbc_lnk( paa, 'U', -1. )   ;   CALL lbc_lnk( pbb, 'V', -1. )   ! lateral boundary condition (changed sign) 
    735717      ! 
    736       CALL wrk_dealloc( jpi, jpj, jpk, zbetup, zbetdo, zbup, zbdo ) 
    737718      ! 
    738719      IF( nn_timing == 1 )  CALL timing_stop('nonosc') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mle.F90

    r7753 r7910  
    1919   USE iom            ! IOM library 
    2020   USE lib_mpp        ! MPP library 
    21    USE wrk_nemo       ! work arrays 
    2221   USE timing         ! Timing 
    2322 
     
    9594      INTEGER, DIMENSION(3) ::   ilocu      ! 
    9695      INTEGER, DIMENSION(2) ::   ilocs      ! 
    97       REAL(wp), POINTER, DIMENSION(:,:  ) :: zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH 
    98       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpsi_uw, zpsi_vw 
    99       INTEGER, POINTER, DIMENSION(:,:) :: inml_mle 
     96      REAL(wp), DIMENSION(jpi,jpj) :: zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH 
     97      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpsi_uw, zpsi_vw 
     98      INTEGER, DIMENSION(jpi,jpj) :: inml_mle 
    10099      !!---------------------------------------------------------------------- 
    101100      ! 
    102101      IF( nn_timing == 1 )  CALL timing_start('tra_adv_mle') 
    103       CALL wrk_alloc( jpi, jpj, zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH) 
    104       CALL wrk_alloc( jpi, jpj, jpk, zpsi_uw, zpsi_vw) 
    105       CALL wrk_alloc( jpi, jpj, inml_mle) 
    106102      ! 
    107103      !                                      !==  MLD used for MLE  ==! 
     
    256252         CALL iom_put( "psiv_mle", zpsi_vw )    ! j-mle streamfunction 
    257253      ENDIF 
    258       CALL wrk_dealloc( jpi, jpj, zpsim_u, zpsim_v, zmld, zbm, zhu, zhv, zn2, zLf_NH, zLf_MH) 
    259       CALL wrk_dealloc( jpi, jpj, jpk, zpsi_uw, zpsi_vw) 
    260       CALL wrk_dealloc( jpi, jpj, inml_mle) 
    261254 
    262255      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_mle') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90

    r7753 r7910  
    2727   ! 
    2828   USE iom 
    29    USE wrk_nemo       ! Memory Allocation 
    3029   USE timing         ! Timing 
    3130   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    9089      REAL(wp) ::   zv, z0v, zzwy, z0w   !   -      - 
    9190      REAL(wp) ::   zalpha               !   -      - 
    92       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zslpx, zslpy   ! 3D workspace 
    93       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx  , zwy     ! -      -  
     91      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zslpx, zslpy   ! 3D workspace 
     92      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx  , zwy     ! -      -  
    9493      !!---------------------------------------------------------------------- 
    9594      ! 
    9695      IF( nn_timing == 1 )  CALL timing_start('tra_adv_mus') 
    9796      ! 
    98       CALL wrk_alloc( jpi,jpj,jpk,   zslpx, zslpy, zwx, zwy ) 
    9997      ! 
    10098      IF( kt == kit000 )  THEN 
     
    279277      END DO                     ! end of tracer loop 
    280278      ! 
    281       CALL wrk_dealloc( jpi,jpj,jpk,   zslpx, zslpy, zwx, zwy ) 
    282279      ! 
    283280      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_mus') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r7646 r7910  
    2525   USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    2626   USE in_out_manager  ! I/O manager 
    27    USE wrk_nemo        ! Memory Allocation 
    2827   USE timing          ! Timing 
    2928   USE lib_fortran     ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    138137      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    139138      REAL(wp) ::   ztra, zbtr, zdir, zdx, zmsk   ! local scalars 
    140       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx, zfu, zfc, zfd 
     139      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwx, zfu, zfc, zfd 
    141140      !---------------------------------------------------------------------- 
    142141      ! 
    143       CALL wrk_alloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd ) 
    144142      !                                                          ! =========== 
    145143      DO jn = 1, kjpt                                            ! tracer loop 
     
    234232      END DO 
    235233      ! 
    236       CALL wrk_dealloc( jpi, jpj, jpk, zwx, zfu, zfc, zfd ) 
    237234      ! 
    238235   END SUBROUTINE tra_adv_qck_i 
     
    254251      INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
    255252      REAL(wp) :: ztra, zbtr, zdir, zdx, zmsk   ! local scalars 
    256       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwy, zfu, zfc, zfd 
     253      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwy, zfu, zfc, zfd 
    257254      !---------------------------------------------------------------------- 
    258255      ! 
    259       CALL wrk_alloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd ) 
    260256      ! 
    261257      !                                                          ! =========== 
     
    359355      END DO 
    360356      ! 
    361       CALL wrk_dealloc( jpi, jpj, jpk, zwy, zfu, zfc, zfd ) 
    362357      ! 
    363358   END SUBROUTINE tra_adv_qck_j 
     
    377372      ! 
    378373      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    379       REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz 
    380       !!---------------------------------------------------------------------- 
    381       ! 
    382       CALL wrk_alloc( jpi,jpj,jpk,   zwz ) 
     374      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwz 
     375      !!---------------------------------------------------------------------- 
     376      ! 
    383377      ! 
    384378      zwz(:,:, 1 ) = 0._wp       ! surface & bottom values set to zero for all tracers 
     
    421415      END DO 
    422416      ! 
    423       CALL wrk_dealloc( jpi,jpj,jpk,   zwz ) 
    424417      ! 
    425418   END SUBROUTINE tra_adv_cen2_k 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r7646 r7910  
    2626   USE lbclnk         ! ocean lateral boundary condition (or mpp link) 
    2727   USE in_out_manager ! I/O manager 
    28    USE wrk_nemo       ! Memory Allocation 
    2928   USE timing         ! Timing 
    3029   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    101100      REAL(wp) ::   zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk   !   -      - 
    102101      REAL(wp) ::   zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn    !   -      - 
    103       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztu, ztv, zltu, zltv, zti, ztw 
     102      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztu, ztv, zltu, zltv, zti, ztw 
    104103      !!---------------------------------------------------------------------- 
    105104      ! 
    106105      IF( nn_timing == 1 )  CALL timing_start('tra_adv_ubs') 
    107106      ! 
    108       CALL wrk_alloc( jpi,jpj,jpk,   ztu, ztv, zltu, zltv, zti, ztw ) 
    109107      ! 
    110108      IF( kt == kit000 )  THEN 
     
    285283      END DO 
    286284      ! 
    287       CALL wrk_dealloc( jpi,jpj,jpk,   ztu, ztv, zltu, zltv, zti, ztw ) 
    288285      ! 
    289286      IF( nn_timing == 1 )  CALL timing_stop('tra_adv_ubs') 
     
    313310      INTEGER  ::   ikm1         ! local integer 
    314311      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn   ! local scalars 
    315       REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo 
     312      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zbetup, zbetdo 
    316313      !!---------------------------------------------------------------------- 
    317314      ! 
    318315      IF( nn_timing == 1 )  CALL timing_start('nonosc_z') 
    319316      ! 
    320       CALL wrk_alloc( jpi,jpj,jpk,   zbetup, zbetdo ) 
    321317      ! 
    322318      zbig  = 1.e+40_wp 
     
    387383      END DO 
    388384      ! 
    389       CALL wrk_dealloc( jpi,jpj,jpk,   zbetup, zbetdo ) 
    390385      ! 
    391386      IF( nn_timing == 1 )  CALL timing_stop('nonosc_z') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90

    r7753 r7910  
    2727   USE lib_mpp        ! distributed memory computing library 
    2828   USE prtctl         ! Print control 
    29    USE wrk_nemo       ! Memory Allocation 
    3029   USE timing         ! Timing 
    3130 
     
    7776      ! 
    7877      INTEGER  ::   ji, jj    ! dummy loop indices 
    79       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt 
     78      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdt 
    8079      !!---------------------------------------------------------------------- 
    8180      ! 
     
    8382      ! 
    8483      IF( l_trdtra )   THEN         ! Save the input temperature trend 
    85          CALL wrk_alloc( jpi,jpj,jpk,   ztrdt ) 
    8684         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    8785      ENDIF 
     
    9896         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
    9997         CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbc, ztrdt ) 
    100          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt ) 
    10198      ENDIF 
    10299      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trabbl.F90

    r7753 r7910  
    3636   USE lbclnk         ! ocean lateral boundary conditions 
    3737   USE prtctl         ! Print control 
    38    USE wrk_nemo       ! Memory Allocation 
    3938   USE timing         ! Timing 
    4039   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    106105      INTEGER, INTENT( in ) ::   kt   ! ocean time-step 
    107106      ! 
    108       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds 
     107      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds 
    109108      !!---------------------------------------------------------------------- 
    110109      ! 
     
    112111      ! 
    113112      IF( l_trdtra )   THEN                         !* Save the input trends 
    114          CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    115113         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    116114         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    150148         CALL trd_tra( kt, 'TRA', jp_tem, jptra_bbl, ztrdt ) 
    151149         CALL trd_tra( kt, 'TRA', jp_sal, jptra_bbl, ztrds ) 
    152          CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    153150      ENDIF 
    154151      ! 
     
    186183      INTEGER  ::   ik           ! local integers 
    187184      REAL(wp) ::   zbtr         ! local scalars 
    188       REAL(wp), POINTER, DIMENSION(:,:) :: zptb 
     185      REAL(wp), DIMENSION(jpi,jpj) :: zptb 
    189186      !!---------------------------------------------------------------------- 
    190187      ! 
    191188      IF( nn_timing == 1 )  CALL timing_start('tra_bbl_dif') 
    192189      ! 
    193       CALL wrk_alloc( jpi, jpj, zptb ) 
    194190      ! 
    195191      DO jn = 1, kjpt                                     ! tracer loop 
     
    216212      END DO                                                ! end tracer 
    217213      !                                                     ! =========== 
    218       CALL wrk_dealloc( jpi, jpj, zptb ) 
    219214      ! 
    220215      IF( nn_timing == 1 )  CALL timing_stop('tra_bbl_dif') 
     
    497492      INTEGER ::   ii0, ii1, ij0, ij1   ! local integer 
    498493      INTEGER ::   ios                  !   -      - 
    499       REAL(wp), POINTER, DIMENSION(:,:) :: zmbk 
     494      REAL(wp), DIMENSION(jpi,jpj) :: zmbk 
    500495      ! 
    501496      NAMELIST/nambbl/ nn_bbl_ldf, nn_bbl_adv, rn_ahtbbl, rn_gambbl 
     
    540535      END DO 
    541536      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 
    542       CALL wrk_alloc( jpi, jpj, zmbk ) 
    543537      zmbk(:,:) = REAL( mbku_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'U',1.)   ;   mbku_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 
    544538      zmbk(:,:) = REAL( mbkv_d(:,:), wp )   ;   CALL lbc_lnk(zmbk,'V',1.)   ;   mbkv_d(:,:) = MAX( INT( zmbk(:,:) ), 1 ) 
    545       CALL wrk_dealloc( jpi, jpj, zmbk ) 
    546539 
    547540      !                                 !* sign of grad(H) at u- and v-points 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90

    r7753 r7910  
    3535   USE lib_mpp        ! MPP library 
    3636   USE prtctl         ! Print control 
    37    USE wrk_nemo       ! Memory allocation 
    3837   USE timing         ! Timing 
    3938   USE iom 
     
    9493      ! 
    9594      INTEGER ::   ji, jj, jk, jn   ! dummy loop indices 
    96       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zts_dta, ztrdts 
     95      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zts_dta, ztrdts 
    9796      !!---------------------------------------------------------------------- 
    9897      ! 
    9998      IF( nn_timing == 1 )   CALL timing_start('tra_dmp') 
    10099      ! 
    101       CALL wrk_alloc( jpi,jpj,jpk,jpts,   zts_dta ) 
    102100      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    103          CALL wrk_alloc( jpi,jpj,jpk,jpts,   ztrdts )  
    104101         ztrdts(:,:,:,:) = tsa(:,:,:,:)  
    105102      ENDIF 
     
    154151         CALL trd_tra( kt, 'TRA', jp_tem, jptra_dmp, ztrdts(:,:,:,jp_tem) ) 
    155152         CALL trd_tra( kt, 'TRA', jp_sal, jptra_dmp, ztrdts(:,:,:,jp_sal) ) 
    156          CALL wrk_dealloc( jpi,jpj,jpk,jpts,   ztrdts )  
    157153      ENDIF 
    158154      !                           ! Control print 
     
    160156         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    161157      ! 
    162       CALL wrk_dealloc( jpi,jpj,jpk,jpts,   zts_dta ) 
    163158      ! 
    164159      IF( nn_timing == 1 )   CALL timing_stop('tra_dmp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90

    r7765 r7910  
    3030   USE lib_mpp        ! distribued memory computing library 
    3131   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    32    USE wrk_nemo       ! Memory allocation 
    3332   USE timing         ! Timing 
    3433 
     
    5857      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    5958      !! 
    60       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds 
     59      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds 
    6160      !!---------------------------------------------------------------------- 
    6261      ! 
     
    6463      ! 
    6564      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    66          CALL wrk_alloc( jpi,jpj,jpk,   ztrdt, ztrds )  
    6765         ztrdt(:,:,:) = tsa(:,:,:,jp_tem)  
    6866         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    8583         CALL trd_tra( kt, 'TRA', jp_tem, jptra_ldf, ztrdt ) 
    8684         CALL trd_tra( kt, 'TRA', jp_sal, jptra_ldf, ztrds ) 
    87          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt, ztrds )  
    8885      ENDIF 
    8986      !                                        !* print mean trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r7753 r7910  
    3030   USE phycst         ! physical constants 
    3131   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    32    USE wrk_nemo       ! Memory Allocation 
    3332   USE timing         ! Timing 
    3433 
     
    111110      REAL(wp) ::  zmskv, zahv_w, zabe2, zcof2, zcoef4   !   -      - 
    112111      REAL(wp) ::  zcoef0, ze3w_2, zsign, z2dt, z1_2dt   !   -      - 
    113       REAL(wp), POINTER, DIMENSION(:,:)   ::   zdkt, zdk1t, z2d 
    114       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdit, zdjt, zftu, zftv, ztfw  
     112      REAL(wp), DIMENSION(jpi,jpj)   ::   zdkt, zdk1t, z2d 
     113      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdit, zdjt, zftu, zftv, ztfw  
    115114      !!---------------------------------------------------------------------- 
    116115      ! 
    117116      IF( nn_timing == 1 )  CALL timing_start('tra_ldf_iso') 
    118117      ! 
    119       CALL wrk_alloc( jpi,jpj,       zdkt, zdk1t, z2d )  
    120       CALL wrk_alloc( jpi,jpj,jpk,   zdit, zdjt , zftu, zftv, ztfw  )  
    121118      ! 
    122119      IF( kt == kit000 )  THEN 
     
    388385      !                                                           ! =============== 
    389386      ! 
    390       CALL wrk_dealloc( jpi, jpj,      zdkt, zdk1t, z2d )  
    391       CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt , zftu, zftv, ztfw  )  
    392387      ! 
    393388      IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_iso') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap_blp.F90

    r7646 r7910  
    2525   USE lib_mpp        ! distribued memory computing library 
    2626   USE timing         ! Timing 
    27    USE wrk_nemo       ! Memory allocation 
    2827   USE iom 
    2928 
     
    8786      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    8887      REAL(wp) ::   zsign            ! local scalars 
    89       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztu, ztv, zaheeu, zaheev 
     88      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztu, ztv, zaheeu, zaheev 
    9089      !!---------------------------------------------------------------------- 
    9190      ! 
     
    9897      ENDIF 
    9998      ! 
    100       CALL wrk_alloc( jpi,jpj,jpk,   ztu, ztv, zaheeu, zaheev )  
    10199      ! 
    102100      l_hst = .FALSE. 
     
    169167      !                             ! ================== 
    170168      ! 
    171       CALL wrk_dealloc( jpi,jpj,jpk,   ztu, ztv, zaheeu, zaheev )  
    172169      ! 
    173170      IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_lap') 
     
    203200      ! 
    204201      INTEGER ::   ji, jj, jk, jn   ! dummy loop indices 
    205       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zlap         ! laplacian at t-point 
    206       REAL(wp), POINTER, DIMENSION(:,:,:)   :: zglu, zglv   ! bottom GRADh of the laplacian (u- and v-points) 
    207       REAL(wp), POINTER, DIMENSION(:,:,:)   :: zgui, zgvi   ! top    GRADh of the laplacian (u- and v-points) 
     202      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt) :: zlap         ! laplacian at t-point 
     203      REAL(wp), DIMENSION(jpi,jpj,kjpt)   :: zglu, zglv   ! bottom GRADh of the laplacian (u- and v-points) 
     204      REAL(wp), DIMENSION(jpi,jpj,kjpt)   :: zgui, zgvi   ! top    GRADh of the laplacian (u- and v-points) 
    208205      !!--------------------------------------------------------------------- 
    209206      ! 
    210207      IF( nn_timing == 1 )  CALL timing_start('tra_ldf_blp') 
    211208      ! 
    212       CALL wrk_alloc( jpi,jpj,jpk,kjpt,   zlap )  
    213       CALL wrk_alloc( jpi,jpj,    kjpt,   zglu, zglv, zgui, zgvi )  
    214209      ! 
    215210      IF( kt == kit000 .AND. lwp )  THEN 
     
    253248      END SELECT 
    254249      ! 
    255       CALL wrk_dealloc( jpi,jpj,jpk,kjpt,   zlap )  
    256       CALL wrk_dealloc( jpi,jpj    ,kjpt,   zglu, zglv, zgui, zgvi )  
    257250      ! 
    258251      IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_blp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90

    r7646 r7910  
    2727   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! Memory Allocation 
    3029   USE timing         ! Timing 
    3130 
     
    9493      REAL(wp) ::   ze1ur, ze2vr, ze3wr, zdxt, zdyt, zdzt 
    9594      REAL(wp) ::   zah, zah_slp, zaei_slp 
    96       REAL(wp), POINTER, DIMENSION(:,:  ) :: z2d                                            ! 2D workspace 
    97       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw   ! 3D     - 
     95      REAL(wp), DIMENSION(jpi,jpj) :: z2d                                            ! 2D workspace 
     96      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw   ! 3D     - 
    9897      !!---------------------------------------------------------------------- 
    9998      ! 
    10099      IF( nn_timing == 1 )  CALL timing_start('tra_ldf_triad') 
    101100      ! 
    102       CALL wrk_alloc( jpi,jpj,       z2d )  
    103       CALL wrk_alloc( jpi,jpj,jpk,   zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw  )  
    104101      ! 
    105102      IF( .NOT.ALLOCATED(zdkt3d) )  THEN 
     
    435432      !                                                           ! =============== 
    436433      ! 
    437       CALL wrk_dealloc( jpi,jpj,       z2d )  
    438       CALL wrk_dealloc( jpi,jpj,jpk,   zdit, zdjt, zftu, zftv, ztfw, zpsi_uw, zpsi_vw  )  
    439434      ! 
    440435      IF( nn_timing == 1 )  CALL timing_stop('tra_ldf_triad') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90

    r6140 r7910  
    2626   USE in_out_manager ! I/O manager 
    2727   USE lib_mpp        ! MPP library 
    28    USE wrk_nemo       ! Memory Allocation 
    2928   USE timing         ! Timing 
    3029 
     
    6867      REAL(wp) ::   zsa, zbeta, zsum_sali, zsum_beta, zbw, zrw, z1_r2dt 
    6968      REAL(wp), PARAMETER :: zn2_zero = 1.e-14_wp       ! acceptance criteria for neutrality (N2==0) 
    70       REAL(wp), POINTER, DIMENSION(:)       ::   zvn2   ! vertical profile of N2 at 1 given point... 
    71       REAL(wp), POINTER, DIMENSION(:,:)     ::   zvts   ! vertical profile of T and S at 1 given point... 
    72       REAL(wp), POINTER, DIMENSION(:,:)     ::   zvab   ! vertical profile of alpha and beta 
    73       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zn2    ! N^2  
    74       REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zab    ! alpha and beta 
    75       REAL(wp), POINTER, DIMENSION(:,:,:)   ::   ztrdt, ztrds   ! 3D workspace 
     69      REAL(wp), DIMENSION(jpk)       ::   zvn2   ! vertical profile of N2 at 1 given point... 
     70      REAL(wp), DIMENSION(jpk,2)     ::   zvts   ! vertical profile of T and S at 1 given point... 
     71      REAL(wp), DIMENSION(jpk,2)     ::   zvab   ! vertical profile of alpha and beta 
     72      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   zn2    ! N^2  
     73      REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   zab    ! alpha and beta 
     74      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::   ztrdt, ztrds   ! 3D workspace 
    7675      ! 
    7776      LOGICAL, PARAMETER :: l_LB_debug = .FALSE. ! set to true if you want to follow what is 
     
    8483      IF( MOD( kt, nn_npc ) == 0 ) THEN 
    8584         ! 
    86          CALL wrk_alloc( jpi, jpj, jpk, zn2 )    ! N2 
    87          CALL wrk_alloc( jpi, jpj, jpk, 2, zab ) ! Alpha and Beta 
    88          CALL wrk_alloc( jpk, 2, zvts, zvab )    ! 1D column vector at point ji,jj 
    89          CALL wrk_alloc( jpk, zvn2 )             ! 1D column vector at point ji,jj 
    9085 
    9186         IF( l_trdtra )   THEN                    !* Save initial after fields 
    92             CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    9387            ztrdt(:,:,:) = tsa(:,:,:,jp_tem)  
    9488            ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    313307            CALL trd_tra( kt, 'TRA', jp_tem, jptra_npc, ztrdt ) 
    314308            CALL trd_tra( kt, 'TRA', jp_sal, jptra_npc, ztrds ) 
    315             CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    316309         ENDIF 
    317310         ! 
     
    323316         ENDIF 
    324317         ! 
    325          CALL wrk_dealloc(jpi, jpj, jpk, zn2 ) 
    326          CALL wrk_dealloc(jpi, jpj, jpk, 2, zab ) 
    327          CALL wrk_dealloc(jpk, zvn2 ) 
    328          CALL wrk_dealloc(jpk, 2, zvts, zvab ) 
    329318         ! 
    330319      ENDIF   ! IF( MOD( kt, nn_npc ) == 0 ) THEN 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r7753 r7910  
    4343   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    4444   USE prtctl          ! Print control 
    45    USE wrk_nemo        ! Memory allocation 
    4645   USE timing          ! Timing 
    4746#if defined key_agrif 
     
    9190      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    9291      REAL(wp) ::   zfact            ! local scalars 
    93       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds 
     92      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds 
    9493      !!---------------------------------------------------------------------- 
    9594      ! 
     
    120119      ! trends computation initialisation 
    121120      IF( l_trdtra )   THEN                     
    122          CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    123121         ztrdt(:,:,jk) = 0._wp 
    124122         ztrds(:,:,jk) = 0._wp 
     
    170168         CALL trd_tra( kt, 'TRA', jp_tem, jptra_atf, ztrdt ) 
    171169         CALL trd_tra( kt, 'TRA', jp_sal, jptra_atf, ztrds ) 
    172          CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    173170      END IF 
    174171      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r7753 r7910  
    3434   USE lib_mpp        ! MPP library 
    3535   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    36    USE wrk_nemo       ! Memory Allocation 
    3736   USE timing         ! Timing 
    3837 
     
    113112      REAL(wp) ::   zCb, zCmax, zze, zpsi, zpsimax, zdelpsi, zCtot, zCze 
    114113      REAL(wp) ::   zlogc, zlogc2, zlogc3  
    115       REAL(wp), POINTER, DIMENSION(:,:)   :: zekb, zekg, zekr 
    116       REAL(wp), POINTER, DIMENSION(:,:,:) :: ze0, ze1, ze2, ze3, zea, ztrdt 
    117       REAL(wp), POINTER, DIMENSION(:,:,:) :: zetot, zchl3d 
     114      REAL(wp), DIMENSION(jpi,jpj)   :: zekb, zekg, zekr 
     115      REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze0, ze1, ze2, ze3, zea, ztrdt 
     116      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zetot, zchl3d 
    118117      !!---------------------------------------------------------------------- 
    119118      ! 
     
    127126      ! 
    128127      IF( l_trdtra ) THEN      ! trends diagnostic: save the input temperature trend 
    129          CALL wrk_alloc( jpi,jpj,jpk,   ztrdt )  
    130128         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    131129      ENDIF 
     
    161159      CASE( np_RGB , np_RGBc )         !==  R-G-B fluxes  ==! 
    162160         ! 
    163          CALL wrk_alloc( jpi,jpj,       zekb, zekg, zekr        )  
    164          CALL wrk_alloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea, zchl3d )  
    165161         ! 
    166162         IF( nqsr == np_RGBc ) THEN          !*  Variable Chlorophyll 
     
    240236         END DO 
    241237         ! 
    242          CALL wrk_dealloc( jpi,jpj,        zekb, zekg, zekr        )  
    243          CALL wrk_dealloc( jpi,jpj,jpk,   ze0, ze1, ze2, ze3, zea, zchl3d )  
    244238         ! 
    245239      CASE( np_2BD  )            !==  2-bands fluxes  ==! 
     
    282276      ! 
    283277      IF( iom_use('qsr3d') ) THEN      ! output the shortwave Radiation distribution 
    284          CALL wrk_alloc( jpi,jpj,jpk,   zetot ) 
    285278         ! 
    286279         zetot(:,:,nksr+1:jpk) = 0._wp     ! below ~400m set to zero 
     
    290283         CALL iom_put( 'qsr3d', zetot )   ! 3D distribution of shortwave Radiation 
    291284         ! 
    292          CALL wrk_dealloc( jpi,jpj,jpk,   zetot )  
    293285      ENDIF 
    294286      ! 
     
    301293         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
    302294         CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt ) 
    303          CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt )  
    304295      ENDIF 
    305296      !                       ! print mean trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90

    r7788 r7910  
    3232   USE iom            ! xIOS server 
    3333   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    34    USE wrk_nemo       ! Memory Allocation 
    3534   USE timing         ! Timing 
    3635 
     
    7574      INTEGER  ::   ikt, ikb              ! local integers 
    7675      REAL(wp) ::   zfact, z1_e3t, zdep   ! local scalar 
    77       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdt, ztrds 
     76      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztrdt, ztrds 
    7877      !!---------------------------------------------------------------------- 
    7978      ! 
     
    8786      ! 
    8887      IF( l_trdtra ) THEN                    !* Save ta and sa trends 
    89          CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )  
    9088         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    9189         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    232230         CALL trd_tra( kt, 'TRA', jp_tem, jptra_nsr, ztrdt ) 
    233231         CALL trd_tra( kt, 'TRA', jp_sal, jptra_nsr, ztrds ) 
    234          CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds )  
    235232      ENDIF 
    236233      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90

    r7753 r7910  
    2929   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3030   USE lib_mpp        ! MPP library 
    31    USE wrk_nemo       ! Memory allocation 
    3231   USE timing         ! Timing 
    3332 
     
    5958      ! 
    6059      INTEGER  ::   jk                   ! Dummy loop indices 
    61       REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt, ztrds   ! 3D workspace 
     60      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ztrdt, ztrds   ! 3D workspace 
    6261      !!--------------------------------------------------------------------- 
    6362      ! 
     
    7170      ! 
    7271      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    73          CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    7472         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    7573         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    9896         CALL trd_tra( kt, 'TRA', jp_tem, jptra_zdf, ztrdt ) 
    9997         CALL trd_tra( kt, 'TRA', jp_sal, jptra_zdf, ztrds ) 
    100          CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    10198      ENDIF 
    10299      !                                          ! print mean trends (used for debugging) 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90

    r6140 r7910  
    3232   USE in_out_manager ! I/O manager 
    3333   USE lib_mpp        ! MPP library 
    34    USE wrk_nemo       ! Memory Allocation 
    3534   USE timing         ! Timing 
    3635 
     
    8483      REAL(wp) ::  z1_ksts, ze3tr       ! local scalars 
    8584      REAL(wp) ::  ztra, ze3tb    !   -      - 
    86       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztb, zwf 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  ztb, zwf 
    8786      !!--------------------------------------------------------------------- 
    8887      ! 
    8988      IF( nn_timing == 1 )  CALL timing_start('tra_zdf_exp') 
    9089      ! 
    91       CALL wrk_alloc( jpi,jpj,jpk,   ztb, zwf )  
    9290      ! 
    9391      IF( kt == kit000 )  THEN 
     
    144142      END DO                     ! end of tracer loop 
    145143      ! 
    146       CALL wrk_dealloc( jpi,jpj,jpk,   ztb, zwf )  
    147144      ! 
    148145      IF( nn_timing == 1 )  CALL timing_stop('tra_zdf_exp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90

    r7753 r7910  
    3535   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3636   USE lib_mpp        ! MPP library 
    37    USE wrk_nemo       ! Memory Allocation 
    3837   USE timing         ! Timing 
    3938 
     
    8382      INTEGER  ::  ji, jj, jk, jn   ! dummy loop indices 
    8483      REAL(wp) ::  zrhs             ! local scalars 
    85       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwi, zwt, zwd, zws 
     84      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwi, zwt, zwd, zws 
    8685      !!--------------------------------------------------------------------- 
    8786      ! 
    8887      IF( nn_timing == 1 )  CALL timing_start('tra_zdf_imp') 
    8988      ! 
    90       CALL wrk_alloc( jpi,jpj,jpk,   zwi, zwt, zwd, zws )  
    9189      ! 
    9290      IF( kt == kit000 )  THEN 
     
    208206      !                                               ! ================= ! 
    209207      ! 
    210       CALL wrk_dealloc( jpi,jpj,jpk,   zwi, zwt, zwd, zws )  
    211208      ! 
    212209      IF( nn_timing == 1 )  CALL timing_stop('tra_zdf_imp') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trddyn.F90

    r6140 r7910  
    2828   USE iom            ! I/O manager library 
    2929   USE lib_mpp        ! MPP library 
    30    USE wrk_nemo       ! Memory allocation 
    3130 
    3231   IMPLICIT NONE 
     
    103102      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    104103      INTEGER ::   ikbu, ikbv   ! local integers 
    105       REAL(wp), POINTER, DIMENSION(:,:)   ::   z2dx, z2dy   ! 2D workspace  
    106       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z3dx, z3dy   ! 3D workspace  
     104      REAL(wp), DIMENSION(jpi,jpj)   ::   z2dx, z2dy   ! 2D workspace  
     105      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   z3dx, z3dy   ! 3D workspace  
    107106      !!---------------------------------------------------------------------- 
    108107      ! 
     
    118117      CASE( jpdyn_keg )   ;   CALL iom_put( "utrd_keg", putrd )    ! Kinetic Energy gradient (or had) 
    119118                              CALL iom_put( "vtrd_keg", pvtrd ) 
    120                               CALL wrk_alloc( jpi, jpj, jpk, z3dx, z3dy ) 
    121119                              z3dx(:,:,:) = 0._wp                  ! U.dxU & V.dyV (approximation) 
    122120                              z3dy(:,:,:) = 0._wp 
     
    133131                              CALL iom_put( "utrd_udx", z3dx  ) 
    134132                              CALL iom_put( "vtrd_vdy", z3dy  ) 
    135                               CALL wrk_dealloc( jpi, jpj, jpk, z3dx, z3dy ) 
    136133      CASE( jpdyn_zad )   ;   CALL iom_put( "utrd_zad", putrd )    ! vertical   advection 
    137134                              CALL iom_put( "vtrd_zad", pvtrd ) 
     
    141138                              CALL iom_put( "vtrd_zdf", pvtrd ) 
    142139                              !                                    ! wind stress trends 
    143                               CALL wrk_alloc( jpi, jpj, z2dx, z2dy ) 
    144140                              z2dx(:,:) = ( utau_b(:,:) + utau(:,:) ) / ( e3u_n(:,:,1) * rau0 ) 
    145141                              z2dy(:,:) = ( vtau_b(:,:) + vtau(:,:) ) / ( e3v_n(:,:,1) * rau0 ) 
    146142                              CALL iom_put( "utrd_tau", z2dx ) 
    147143                              CALL iom_put( "vtrd_tau", z2dy ) 
    148                               CALL wrk_dealloc( jpi, jpj, z2dx, z2dy ) 
    149144      CASE( jpdyn_bfr )       ! called if ln_bfrimp=T 
    150145                              CALL iom_put( "utrd_bfr", putrd )    ! bottom friction (explicit case) 
     
    153148                              CALL iom_put( "vtrd_atf", pvtrd ) 
    154149      CASE( jpdyn_bfri )  ;   IF( ln_bfrimp ) THEN                     ! bottom friction (implicit case) 
    155                                  CALL wrk_alloc( jpi, jpj, jpk, z3dx, z3dy ) 
    156150                                 z3dx(:,:,:) = 0._wp   ;   z3dy(:,:,:) = 0._wp  ! after velocity known (now filed at this stage) 
    157151                                 DO jk = 1, jpkm1 
     
    168162                                 CALL iom_put( "utrd_bfri", z3dx ) 
    169163                                 CALL iom_put( "vtrd_bfri", z3dy ) 
    170                                  CALL wrk_dealloc( jpi, jpj, jpk, z3dx, z3dy ) 
    171164                              ENDIF 
    172165      END SELECT 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trdglo.F90

    r6140 r7910  
    3030   USE in_out_manager  ! I/O manager 
    3131   USE iom             ! I/O manager library 
    32    USE wrk_nemo        ! Memory allocation 
    3332 
    3433   IMPLICIT NONE 
     
    7877      INTEGER ::   ikbu, ikbv      ! local integers 
    7978      REAL(wp)::   zvm, zvt, zvs, z1_2rau0   ! local scalars 
    80       REAL(wp), POINTER, DIMENSION(:,:)  :: ztswu, ztswv, z2dx, z2dy   ! 2D workspace  
    81       !!---------------------------------------------------------------------- 
    82  
    83       CALL wrk_alloc( jpi, jpj, ztswu, ztswv, z2dx, z2dy ) 
     79      REAL(wp), DIMENSION(jpi,jpj)  :: ztswu, ztswv, z2dx, z2dy   ! 2D workspace  
     80      !!---------------------------------------------------------------------- 
     81 
    8482 
    8583      IF( MOD(kt,nn_trd) == 0 .OR. kt == nit000 .OR. kt == nitend ) THEN 
     
    179177      ENDIF 
    180178      ! 
    181       CALL wrk_dealloc( jpi, jpj, ztswu, ztswv, z2dx, z2dy ) 
    182179      ! 
    183180   END SUBROUTINE trd_glo 
     
    194191      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    195192      REAL(wp) ::   zcof         ! local scalar 
    196       REAL(wp), POINTER, DIMENSION(:,:,:)  ::  zkx, zky, zkz, zkepe   
    197       !!---------------------------------------------------------------------- 
    198  
    199       CALL wrk_alloc( jpi, jpj, jpk, zkx, zky, zkz, zkepe ) 
     193      REAL(wp), DIMENSION(jpi,jpj,jpk)  ::  zkx, zky, zkz, zkepe   
     194      !!---------------------------------------------------------------------- 
     195 
    200196 
    201197      ! I. Momentum trends 
     
    373369      ENDIF 
    374370      ! 
    375       CALL wrk_dealloc( jpi, jpj, jpk, zkx, zky, zkz, zkepe ) 
    376371      ! 
    377372   END SUBROUTINE glo_dyn_wri 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90

    r7646 r7910  
    2727   USE iom            ! I/O manager library 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! Memory allocation 
    3029   USE ldfslp         ! Isopycnal slopes 
    3130 
     
    8685      INTEGER ::   ikbu  , ikbv     ! local integers 
    8786      INTEGER ::   ikbum1, ikbvm1   !   -       - 
    88       REAL(wp), POINTER, DIMENSION(:,:)   ::   z2dx, z2dy, zke2d   ! 2D workspace  
    89       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zke                 ! 3D workspace  
    90       !!---------------------------------------------------------------------- 
    91       ! 
    92       CALL wrk_alloc( jpi, jpj, jpk, zke ) 
     87      REAL(wp), DIMENSION(jpi,jpj)   ::   z2dx, z2dy, zke2d   ! 2D workspace  
     88      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zke                 ! 3D workspace  
     89      !!---------------------------------------------------------------------- 
     90      ! 
    9391      ! 
    9492      CALL lbc_lnk( putrd, 'U', -1. )   ;   CALL lbc_lnk( pvtrd, 'V', -1. )      ! lateral boundary conditions 
     
    125123         CASE( jpdyn_zdf )   ;   CALL iom_put( "ketrd_zdf"   , zke )    ! vertical diffusion  
    126124         !                   !                                          ! wind stress trends 
    127                                  CALL wrk_alloc( jpi, jpj, z2dx, z2dy, zke2d ) 
    128125                           z2dx(:,:) = un(:,:,1) * ( utau_b(:,:) + utau(:,:) ) * e1e2u(:,:) * umask(:,:,1) 
    129126                           z2dy(:,:) = vn(:,:,1) * ( vtau_b(:,:) + vtau(:,:) ) * e1e2v(:,:) * vmask(:,:,1) 
     
    136133                           END DO 
    137134                                 CALL iom_put( "ketrd_tau"   , zke2d )  !  
    138                                  CALL wrk_dealloc( jpi, jpj     , z2dx, z2dy, zke2d ) 
    139135         CASE( jpdyn_bfr )   ;   CALL iom_put( "ketrd_bfr"   , zke )    ! bottom friction (explicit case)  
    140136!!gm TO BE DONE properly 
     
    192188      END SELECT 
    193189      ! 
    194       CALL wrk_dealloc( jpi, jpj, jpk, zke ) 
    195190      ! 
    196191   END SUBROUTINE trd_ken 
     
    214209      INTEGER  ::   iku, ikv                         ! temporary integers 
    215210      REAL(wp) ::   zcoef                            ! temporary scalars 
    216       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zconv  ! temporary conv on W-grid 
    217       !!---------------------------------------------------------------------- 
    218       ! 
    219       CALL wrk_alloc( jpi,jpj,jpk, zconv ) 
     211      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zconv  ! temporary conv on W-grid 
     212      !!---------------------------------------------------------------------- 
     213      ! 
    220214      ! 
    221215      ! Local constant initialization  
     
    240234      END DO 
    241235      ! 
    242       CALL wrk_dealloc( jpi,jpj,jpk, zconv )       
    243236      ! 
    244237   END SUBROUTINE ken_p2k 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90

    r6140 r7910  
    3737   USE restart         ! for lrst_oce 
    3838   USE lib_mpp         ! MPP library 
    39    USE wrk_nemo        ! Memory allocation 
    4039   USE iom 
    4140 
     
    256255      ! 
    257256      INTEGER ::   ji, jj, jk, isum 
    258       REAL(wp), POINTER, DIMENSION(:,:)  :: zvlmsk  
    259       !!---------------------------------------------------------------------- 
    260  
    261       CALL wrk_alloc( jpi, jpj, zvlmsk )  
     257      REAL(wp), DIMENSION(jpi,jpj)  :: zvlmsk  
     258      !!---------------------------------------------------------------------- 
     259 
    262260 
    263261      ! I. Definition of control surface and associated fields 
     
    284282      END IF 
    285283      ! 
    286       CALL wrk_dealloc( jpi, jpj, zvlmsk )  
    287284      ! 
    288285   END SUBROUTINE trd_mxl_zint 
     
    342339      !                                              ! z(ts)mltot : dT/dt over the anlysis window (including Asselin) 
    343340      !                                              ! z(ts)mlres : residual = dh/dt entrainment term 
    344       REAL(wp), POINTER, DIMENSION(:,:  ) ::  ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf 
    345       REAL(wp), POINTER, DIMENSION(:,:  ) ::  ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2   
    346       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztmltrd2, zsmltrd2   ! only needed for mean diagnostics 
     341      REAL(wp), DIMENSION(jpi,jpj) ::  ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf 
     342      REAL(wp), DIMENSION(jpi,jpj) ::  ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2   
     343      REAL(wp), DIMENSION(jpi,jpj,jpltrd) ::  ztmltrd2, zsmltrd2   ! only needed for mean diagnostics 
    347344      !!---------------------------------------------------------------------- 
    348345   
    349       CALL wrk_alloc( jpi, jpj,         ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf                        ) 
    350       CALL wrk_alloc( jpi, jpj,         ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2 )   
    351       CALL wrk_alloc( jpi, jpj, jpltrd, ztmltrd2, zsmltrd2                                                               ) 
    352346 
    353347      ! ====================================================================== 
     
    724718      IF( lrst_oce )   CALL trd_mxl_rst_write( kt )  
    725719 
    726       CALL wrk_dealloc( jpi, jpj,         ztmltot , zsmltot , ztmlres , zsmlres , ztmlatf , zsmlatf                        ) 
    727       CALL wrk_dealloc( jpi, jpj,         ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2 )   
    728       CALL wrk_dealloc( jpi, jpj, jpltrd, ztmltrd2, zsmltrd2                                                               ) 
    729720      ! 
    730721   END SUBROUTINE trd_mxl 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trdpen.F90

    r6140 r7910  
    2424   USE iom            ! I/O manager library 
    2525   USE lib_mpp        ! MPP library 
    26    USE wrk_nemo       ! Memory allocation 
    2726 
    2827   IMPLICIT NONE 
     
    7170      ! 
    7271      INTEGER ::   jk                                            ! dummy loop indices 
    73       REAL(wp), POINTER, DIMENSION(:,:)      ::   z2d            ! 2D workspace  
    74       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   zpe            ! 3D workspace  
     72      REAL(wp), DIMENSION(jpi,jpj)      ::   z2d            ! 2D workspace  
     73      REAL(wp), DIMENSION(jpi,jpj,jpk)    ::   zpe            ! 3D workspace  
    7574      !!---------------------------------------------------------------------- 
    7675      ! 
    77       CALL wrk_alloc( jpi, jpj, jpk, zpe ) 
    7876      zpe(:,:,:) = 0._wp 
    7977      ! 
     
    9795      CASE ( jptra_zad  )   ;   CALL iom_put( "petrd_zad", zpe )   ! vertical advection 
    9896                                IF( ln_linssh ) THEN                   ! cst volume : adv flux through z=0 surface 
    99                                    CALL wrk_alloc( jpi, jpj, z2d ) 
    10097                                   z2d(:,:) = wn(:,:,1) * ( & 
    10198                                     &   - ( rab_n(:,:,1,jp_tem) + rab_pe(:,:,1,jp_tem) ) * tsn(:,:,1,jp_tem)    & 
     
    103100                                     & ) / e3t_n(:,:,1) 
    104101                                   CALL iom_put( "petrd_sad" , z2d ) 
    105                                    CALL wrk_dealloc( jpi, jpj, z2d ) 
    106102                                ENDIF 
    107103      CASE ( jptra_ldf  )   ;   CALL iom_put( "petrd_ldf" , zpe )   ! lateral  diffusion 
     
    116112      CASE ( jptra_atf  )   ;   CALL iom_put( "petrd_atf" , zpe )   ! asselin time filter (last trend) 
    117113                                !IF( ln_linssh ) THEN                   ! cst volume : ssh term (otherwise include in e3t variation) 
    118                                 !   CALL wrk_alloc( jpi, jpj, z2d ) 
    119114                                !   z2d(:,:) = ( ssha(:,:) - sshb(:,:) )                 & 
    120115                                !      &     * (   dPE_dt(:,:,1) * tsn(:,:,1,jp_tem)    & 
    121116                                !      &         + dPE_ds(:,:,1) * tsn(:,:,1,jp_sal)  ) / ( e3t_n(:,:,1) * pdt ) 
    122117                                !   CALL iom_put( "petrd_sad" , z2d ) 
    123                                 !   CALL wrk_dealloc( jpi, jpj, z2d ) 
    124118                                !ENDIF 
    125119         ! 
    126120      END SELECT 
    127121      ! 
    128       CALL wrk_dealloc( jpi, jpj, jpk, zpe ) 
    129122      ! 
    130123   END SUBROUTINE trd_pen 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90

    r7646 r7910  
    3131   USE iom            ! I/O manager library 
    3232   USE lib_mpp        ! MPP library 
    33    USE wrk_nemo       ! Memory allocation 
    3433 
    3534   IMPLICIT NONE 
     
    8483      ! 
    8584      INTEGER  ::   jk   ! loop indices 
    86       REAL(wp), POINTER, DIMENSION(:,:,:)  ::   zwt, zws, ztrdt, ztrds   ! 3D workspace 
    87       !!---------------------------------------------------------------------- 
    88       ! 
    89       CALL wrk_alloc( jpi, jpj, jpk, ztrds ) 
     85      REAL(wp), DIMENSION(jpi,jpj,jpk)  ::   zwt, zws, ztrdt, ztrds   ! 3D workspace 
     86      !!---------------------------------------------------------------------- 
     87      ! 
    9088      !       
    9189      IF( .NOT. ALLOCATED( trdtx ) ) THEN      ! allocate trdtra arrays 
     
    123121         CASE( jptra_zdfp )           ! diagnose the "PURE" Kz trend (here: just before the swap) 
    124122            !                         ! iso-neutral diffusion case otherwise jptra_zdf is "PURE" 
    125             CALL wrk_alloc( jpi, jpj, jpk, zwt, zws, ztrdt ) 
    126123            ! 
    127124            zwt(:,:, 1 ) = 0._wp   ;   zws(:,:, 1 ) = 0._wp            ! vertical diffusive fluxes 
     
    153150            CALL trd_tra_mng( ztrdt, ztrds, jptra_evd, kt )   
    154151            ! 
    155             CALL wrk_dealloc( jpi, jpj, jpk, zwt, zws, ztrdt ) 
    156152            ! 
    157153         CASE DEFAULT                 ! other trends: mask and send T & S trends to trd_tra_mng 
     
    176172      ENDIF 
    177173      ! 
    178       CALL wrk_dealloc( jpi, jpj, jpk, ztrds ) 
    179174      ! 
    180175   END SUBROUTINE trd_tra 
     
    306301      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    307302      INTEGER ::   ikbu, ikbv   ! local integers 
    308       REAL(wp), POINTER, DIMENSION(:,:)   ::   z2dx, z2dy   ! 2D workspace  
     303      REAL(wp), DIMENSION(jpi,jpj)   ::   z2dx, z2dy   ! 2D workspace  
    309304      !!---------------------------------------------------------------------- 
    310305      ! 
     
    319314                               CALL iom_put( "strd_zad" , ptrdy ) 
    320315                               IF( ln_linssh ) THEN                   ! cst volume : adv flux through z=0 surface 
    321                                   CALL wrk_alloc( jpi, jpj, z2dx, z2dy ) 
    322316                                  z2dx(:,:) = wn(:,:,1) * tsn(:,:,1,jp_tem) / e3t_n(:,:,1) 
    323317                                  z2dy(:,:) = wn(:,:,1) * tsn(:,:,1,jp_sal) / e3t_n(:,:,1) 
    324318                                  CALL iom_put( "ttrd_sad", z2dx ) 
    325319                                  CALL iom_put( "strd_sad", z2dy ) 
    326                                   CALL wrk_dealloc( jpi, jpj, z2dx, z2dy ) 
    327320                               ENDIF 
    328321      CASE( jptra_totad  ) ;   CALL iom_put( "ttrd_totad" , ptrdx )      ! total   advection 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90

    r6140 r7910  
    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      !!---------------------------------------------------------------------- 
     94 
    9795 
    9896      SELECT CASE( ktrd )  
     
    122120      END SELECT 
    123121      ! 
    124       CALL wrk_dealloc( jpi, jpj, ztswu, ztswv ) 
    125122      ! 
    126123   END SUBROUTINE trd_vor 
     
    160157      INTEGER ::   ji, jj       ! dummy loop indices 
    161158      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 
     159      REAL(wp), DIMENSION(jpi,jpj) :: zudpvor, zvdpvor  ! total cmulative trends 
     160      !!---------------------------------------------------------------------- 
     161 
     162      ! 
    167163      ! 
    168164 
     
    211207      ENDIF 
    212208      ! 
    213       CALL wrk_dealloc( jpi, jpj, zudpvor, zvdpvor )                                    
    214209      ! 
    215210   END SUBROUTINE trd_vor_zint_2d 
     
    249244      ! 
    250245      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 
     246      REAL(wp), DIMENSION(jpi,jpj) :: zubet  , zvbet    ! Beta.V    
     247      REAL(wp), DIMENSION(jpi,jpj) :: zudpvor, zvdpvor  ! total cmulative trends 
    253248      !!---------------------------------------------------------------------- 
    254249      
    255       CALL wrk_alloc( jpi,jpj, zubet, zvbet, zudpvor, zvdpvor )                                    
    256250 
    257251      ! Initialization 
     
    307301      ENDIF 
    308302      ! 
    309       CALL wrk_dealloc( jpi,jpj, zubet, zvbet, zudpvor, zvdpvor )                                    
    310303      ! 
    311304   END SUBROUTINE trd_vor_zint_3d 
     
    324317      INTEGER  ::   it, itmod        ! local integers 
    325318      REAL(wp) ::   zmean            ! local scalars 
    326       REAL(wp), POINTER, DIMENSION(:,:) :: zun, zvn 
    327       !!---------------------------------------------------------------------- 
    328  
    329       CALL wrk_alloc( jpi, jpj, zun, zvn )                                    
     319      REAL(wp), DIMENSION(jpi,jpj) :: zun, zvn 
     320      !!---------------------------------------------------------------------- 
     321 
    330322 
    331323      !  ================= 
     
    460452      IF( kt == nitend )   CALL histclo( nidvor ) 
    461453      ! 
    462       CALL wrk_dealloc( jpi, jpj, zun, zvn )                                    
    463454      ! 
    464455   END SUBROUTINE trd_vor_iom 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r7753 r7910  
    2424   USE prtctl          ! Print control 
    2525   USE timing          ! Timing 
    26    USE wrk_nemo        ! Memory Allocation 
    2726   USE phycst, ONLY: vkarmn 
    2827 
     
    9594      INTEGER  ::   ikbt, ikbu, ikbv             ! local integers 
    9695      REAL(wp) ::   zvu, zuv, zecu, zecv, ztmp   ! temporary scalars 
    97       REAL(wp), POINTER, DIMENSION(:,:) ::  zbfrt, ztfrt 
     96      REAL(wp), DIMENSION(jpi,jpj) ::  zbfrt, ztfrt 
    9897      !!---------------------------------------------------------------------- 
    9998      ! 
     
    102101      IF( nn_bfr == 2 ) THEN                 ! quadratic bottom friction only 
    103102         ! 
    104          CALL wrk_alloc( jpi, jpj, zbfrt, ztfrt ) 
    105103 
    106104         IF ( ln_loglayer.AND. .NOT.ln_linssh ) THEN ! "log layer" bottom friction coefficient 
     
    203201         IF(ln_ctl)   CALL prt_ctl( tab2d_1=bfrua, clinfo1=' bfr  - u: ', mask1=umask,        & 
    204202            &                       tab2d_2=bfrva, clinfo2=       ' v: ', mask2=vmask,ovlap=1 ) 
    205          CALL wrk_dealloc( jpi,jpj,zbfrt, ztfrt ) 
    206203      ENDIF 
    207204      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfddm.F90

    r7753 r7910  
    2525   USE prtctl          ! Print control 
    2626   USE lib_mpp         ! MPP library 
    27    USE wrk_nemo        ! work arrays 
    2827   USE timing          ! Timing 
    2928 
     
    10099      REAL(wp) ::   zavft, zavfs    !   -      - 
    101100      REAL(wp) ::   zavdt, zavds    !   -      - 
    102       REAL(wp), POINTER, DIMENSION(:,:) ::   zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 
     101      REAL(wp), DIMENSION(jpi,jpj) ::   zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 
    103102      !!---------------------------------------------------------------------- 
    104103      ! 
    105104      IF( nn_timing == 1 )  CALL timing_start('zdf_ddm') 
    106105      ! 
    107       CALL wrk_alloc( jpi,jpj, zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 ) 
    108106      ! 
    109107      !                                                ! =============== 
     
    215213      ENDIF 
    216214      ! 
    217       CALL wrk_dealloc( jpi,jpj, zrau, zmsks, zmskf, zmskd1, zmskd2, zmskd3 ) 
    218215      ! 
    219216      IF( nn_timing == 1 )  CALL timing_stop('zdf_ddm') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfevd.F90

    r7753 r7910  
    2323   USE iom             ! for iom_put 
    2424   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    25    USE wrk_nemo        ! work arrays 
    2625   USE timing          ! Timing 
    2726 
     
    5655      ! 
    5756      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    58       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zavt_evd, zavm_evd 
     57      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zavt_evd, zavm_evd 
    5958      !!---------------------------------------------------------------------- 
    6059      ! 
     
    6867      ENDIF 
    6968      ! 
    70       CALL wrk_alloc( jpi,jpj,jpk,   zavt_evd, zavm_evd )  
    7169      ! 
    7270      zavt_evd(:,:,:) = avt(:,:,:)           ! set avt prior to evd application 
     
    115113      IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 
    116114      ! 
    117       CALL wrk_dealloc( jpi,jpj,jpk,   zavt_evd, zavm_evd )  
    118115      ! 
    119116      IF( nn_timing == 1 )  CALL timing_stop('zdf_evd') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r7646 r7910  
    2828   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    2929   USE lib_mpp        ! MPP manager 
    30    USE wrk_nemo       ! work arrays 
    3130   USE prtctl         ! Print control 
    3231   USE in_out_manager ! I/O manager 
     
    138137      REAL(wp) ::   prod, buoy, diss, zdiss, sm         !   -      - 
    139138      REAL(wp) ::   gh, gm, shr, dif, zsqen, zav        !   -      - 
    140       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zdep 
    141       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zkar 
    142       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zflxs       ! Turbulence fluxed induced by internal waves  
    143       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zhsro       ! Surface roughness (surface waves) 
    144       REAL(wp), POINTER, DIMENSION(:,:,:) ::   eb          ! tke at time before 
    145       REAL(wp), POINTER, DIMENSION(:,:,:) ::   mxlb        ! mixing length at time before 
    146       REAL(wp), POINTER, DIMENSION(:,:,:) ::   shear       ! vertical shear 
    147       REAL(wp), POINTER, DIMENSION(:,:,:) ::   eps         ! dissipation rate 
    148       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwall_psi   ! Wall function use in the wb case (ln_sigpsi) 
    149       REAL(wp), POINTER, DIMENSION(:,:,:) ::   psi         ! psi at time now 
    150       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_elem_a    ! element of the first  matrix diagonal 
    151       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_elem_b    ! element of the second matrix diagonal 
    152       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_elem_c    ! element of the third  matrix diagonal 
     139      REAL(wp), DIMENSION(jpi,jpj) ::   zdep 
     140      REAL(wp), DIMENSION(jpi,jpj) ::   zkar 
     141      REAL(wp), DIMENSION(jpi,jpj) ::   zflxs       ! Turbulence fluxed induced by internal waves  
     142      REAL(wp), DIMENSION(jpi,jpj) ::   zhsro       ! Surface roughness (surface waves) 
     143      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   eb          ! tke at time before 
     144      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   mxlb        ! mixing length at time before 
     145      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   shear       ! vertical shear 
     146      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   eps         ! dissipation rate 
     147      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwall_psi   ! Wall function use in the wb case (ln_sigpsi) 
     148      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   psi         ! psi at time now 
     149      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   z_elem_a    ! element of the first  matrix diagonal 
     150      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   z_elem_b    ! element of the second matrix diagonal 
     151      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   z_elem_c    ! element of the third  matrix diagonal 
    153152      !!-------------------------------------------------------------------- 
    154153      ! 
    155154      IF( nn_timing == 1 )  CALL timing_start('zdf_gls') 
    156155      ! 
    157       CALL wrk_alloc( jpi,jpj,       zdep, zkar, zflxs, zhsro ) 
    158       CALL wrk_alloc( jpi,jpj,jpk,   eb, mxlb, shear, eps, zwall_psi, z_elem_a, z_elem_b, z_elem_c, psi  ) 
    159156       
    160157      ! Preliminary computing 
     
    824821      avmv_k(:,:,:) = avmv(:,:,:) 
    825822      ! 
    826       CALL wrk_dealloc( jpi,jpj,       zdep, zkar, zflxs, zhsro ) 
    827       CALL wrk_dealloc( jpi,jpj,jpk,   eb, mxlb, shear, eps, zwall_psi, z_elem_a, z_elem_b, z_elem_c, psi ) 
    828823      ! 
    829824      IF( nn_timing == 1 )  CALL timing_stop('zdf_gls') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfmxl.F90

    r7753 r7910  
    2020   USE iom             ! I/O library 
    2121   USE lib_mpp         ! MPP library 
    22    USE wrk_nemo        ! work arrays 
    2322   USE timing          ! Timing 
    2423 
     
    8079      INTEGER  ::   iikn, iiki, ikt ! local integer 
    8180      REAL(wp) ::   zN2_c           ! local scalar 
    82       INTEGER, POINTER, DIMENSION(:,:) ::   imld   ! 2D workspace 
     81      INTEGER, DIMENSION(jpi,jpj) ::   imld   ! 2D workspace 
    8382      !!---------------------------------------------------------------------- 
    8483      ! 
    8584      IF( nn_timing == 1 )  CALL timing_start('zdf_mxl') 
    8685      ! 
    87       CALL wrk_alloc( jpi,jpj, imld ) 
    8886 
    8987      IF( kt == nit000 ) THEN 
     
    144142      IF(ln_ctl)   CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ', ovlap=1 ) 
    145143      ! 
    146       CALL wrk_dealloc( jpi,jpj, imld ) 
    147144      ! 
    148145      IF( nn_timing == 1 )  CALL timing_stop('zdf_mxl') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90

    r7646 r7910  
    2727   USE lbclnk         ! ocean lateral boundary condition (or mpp link) 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! work arrays 
    3029   USE timing         ! Timing 
    3130   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    121120      REAL(wp) ::   zcoef, zdku, zdkv, zri, z05alp, zflageos  ! temporary scalars 
    122121      REAL(wp) ::   zrhos, zustar 
    123       REAL(wp), POINTER, DIMENSION(:,:) ::   zwx, ekm_dep   
     122      REAL(wp), DIMENSION(jpi,jpj) ::   zwx, ekm_dep   
    124123      !!---------------------------------------------------------------------- 
    125124      ! 
    126125      IF( nn_timing == 1 )  CALL timing_start('zdf_ric') 
    127126      ! 
    128       CALL wrk_alloc( jpi,jpj, zwx, ekm_dep ) 
    129127      !                                                ! =============== 
    130128      DO jk = 2, jpkm1                                 ! Horizontal slab 
     
    229227      CALL lbc_lnk( avmu, 'U', 1. )   ;   CALL lbc_lnk( avmv, 'V', 1. ) 
    230228      ! 
    231       CALL wrk_dealloc( jpi,jpj, zwx, ekm_dep ) 
    232229      ! 
    233230      IF( nn_timing == 1 )  CALL timing_stop('zdf_ric') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r7813 r7910  
    5050   USE iom            ! I/O manager library 
    5151   USE lib_mpp        ! MPP library 
    52    USE wrk_nemo       ! work arrays 
    5352   USE timing         ! Timing 
    5453   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    231230      REAL(wp) ::   zzd_up, zzd_lw                  !    -         - 
    232231!!bfr      REAL(wp) ::   zebot                           !    -         - 
    233       INTEGER , POINTER, DIMENSION(:,:  ) ::   imlc 
    234       REAL(wp), POINTER, DIMENSION(:,:  ) ::   zhlc 
    235       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zpelc, zdiag, zd_up, zd_lw, z3du, z3dv 
     232      INTEGER , DIMENSION(jpi,jpj) ::   imlc 
     233      REAL(wp), DIMENSION(jpi,jpj) ::   zhlc 
     234      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zpelc, zdiag, zd_up, zd_lw, z3du, z3dv 
    236235      REAL(wp)                            ::   zri  !   local Richardson number 
    237236      !!-------------------------------------------------------------------- 
     
    239238      IF( nn_timing == 1 )  CALL timing_start('tke_tke') 
    240239      ! 
    241       CALL wrk_alloc( jpi,jpj,       imlc )    ! integer 
    242       CALL wrk_alloc( jpi,jpj,       zhlc )  
    243       CALL wrk_alloc( jpi,jpj,jpk,   zpelc, zdiag, zd_up, zd_lw, z3du, z3dv )  
    244240      ! 
    245241      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
     
    483479      CALL lbc_lnk( en, 'W', 1. )      ! Lateral boundary conditions (sign unchanged) 
    484480      ! 
    485       CALL wrk_dealloc( jpi,jpj,       imlc )    ! integer 
    486       CALL wrk_dealloc( jpi,jpj,       zhlc )  
    487       CALL wrk_dealloc( jpi,jpj,jpk,   zpelc, zdiag, zd_up, zd_lw, z3du, z3dv )  
    488481      ! 
    489482      IF( nn_timing == 1 )  CALL timing_stop('tke_tke') 
     
    531524      REAL(wp) ::   zdku, zri, zsqen            !   -      - 
    532525      REAL(wp) ::   zdkv, zemxl, zemlm, zemlp   !   -      - 
    533       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmpdl, zmxlm, zmxld 
     526      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmpdl, zmxlm, zmxld 
    534527      !!-------------------------------------------------------------------- 
    535528      ! 
    536529      IF( nn_timing == 1 )  CALL timing_start('tke_avn') 
    537530 
    538       CALL wrk_alloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld )  
    539531 
    540532      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    701693      ENDIF 
    702694      ! 
    703       CALL wrk_dealloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld )  
    704695      ! 
    705696      IF( nn_timing == 1 )  CALL timing_stop('tke_avn') 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90

    r7779 r7910  
    2525   USE iom            ! I/O Manager 
    2626   USE lib_mpp        ! MPP library 
    27    USE wrk_nemo       ! work arrays 
    2827   USE timing         ! Timing 
    2928   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    108107      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    109108      REAL(wp) ::   ztpc         ! scalar workspace 
    110       REAL(wp), POINTER, DIMENSION(:,:)   ::   zkz 
    111       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zav_tide 
     109      REAL(wp), DIMENSION(jpi,jpj)   ::   zkz 
     110      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zav_tide 
    112111      !!---------------------------------------------------------------------- 
    113112      ! 
    114113      IF( nn_timing == 1 )  CALL timing_start('zdf_tmx') 
    115114      ! 
    116       CALL wrk_alloc( jpi,jpj,       zkz ) 
    117       CALL wrk_alloc( jpi,jpj,jpk,   zav_tide ) 
    118115      ! 
    119116      !                          ! ----------------------- ! 
     
    179176      IF(ln_ctl)   CALL prt_ctl(tab3d_1=zav_tide , clinfo1=' tmx - av_tide: ', tab3d_2=avt, clinfo2=' avt: ', ovlap=1, kdim=jpk) 
    180177      ! 
    181       CALL wrk_dealloc( jpi,jpj,       zkz ) 
    182       CALL wrk_dealloc( jpi,jpj,jpk,   zav_tide ) 
    183178      ! 
    184179      IF( nn_timing == 1 )  CALL timing_stop('zdf_tmx') 
     
    212207      INTEGER  ::   ji, jj, jk    ! dummy loop indices 
    213208      REAL(wp) ::   zcoef, ztpc   ! temporary scalar 
    214       REAL(wp), DIMENSION(:,:)  , POINTER ::   zkz                        ! 2D workspace 
    215       REAL(wp), DIMENSION(:,:)  , POINTER ::   zsum1 , zsum2 , zsum       !  -      - 
    216       REAL(wp), DIMENSION(:,:,:), POINTER ::   zempba_3d_1, zempba_3d_2   ! 3D workspace 
    217       REAL(wp), DIMENSION(:,:,:), POINTER ::   zempba_3d  , zdn2dz        !  -      - 
    218       REAL(wp), DIMENSION(:,:,:), POINTER ::   zavt_itf                   !  -      - 
     209      REAL(wp), DIMENSION(jpi,jpj)  ::   zkz                        ! 2D workspace 
     210      REAL(wp), DIMENSION(jpi,jpj)  ::   zsum1 , zsum2 , zsum       !  -      - 
     211      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zempba_3d_1, zempba_3d_2   ! 3D workspace 
     212      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zempba_3d  , zdn2dz        !  -      - 
     213      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zavt_itf                   !  -      - 
    219214      !!---------------------------------------------------------------------- 
    220215      ! 
    221216      IF( nn_timing == 1 )  CALL timing_start('tmx_itf') 
    222217      ! 
    223       CALL wrk_alloc( jpi,jpj, zkz, zsum1 , zsum2 , zsum ) 
    224       CALL wrk_alloc( jpi,jpj,jpk, zempba_3d_1, zempba_3d_2, zempba_3d, zdn2dz, zavt_itf ) 
    225218 
    226219      !                             ! compute the form function using N2 at each time step 
     
    308301      END DO 
    309302      ! 
    310       CALL wrk_dealloc( jpi,jpj, zkz, zsum1 , zsum2 , zsum ) 
    311       CALL wrk_dealloc( jpi,jpj,jpk, zempba_3d_1, zempba_3d_2, zempba_3d, zdn2dz, zavt_itf ) 
    312303      ! 
    313304      IF( nn_timing == 1 )  CALL timing_stop('tmx_itf') 
     
    355346      INTEGER  ::   ios 
    356347      REAL(wp) ::   ztpc, ze_z   ! local scalars 
    357       REAL(wp), DIMENSION(:,:)  , POINTER ::  zem2, zek1     ! read M2 and K1 tidal energy 
    358       REAL(wp), DIMENSION(:,:)  , POINTER ::  zkz            ! total M2, K1 and S2 tidal energy 
    359       REAL(wp), DIMENSION(:,:)  , POINTER ::  zfact          ! used for vertical structure function 
    360       REAL(wp), DIMENSION(:,:)  , POINTER ::  zhdep          ! Ocean depth  
    361       REAL(wp), DIMENSION(:,:,:), POINTER ::  zpc, zav_tide  ! power consumption 
     348      REAL(wp), DIMENSION(jpi,jpj)  ::  zem2, zek1     ! read M2 and K1 tidal energy 
     349      REAL(wp), DIMENSION(jpi,jpj)  ::  zkz            ! total M2, K1 and S2 tidal energy 
     350      REAL(wp), DIMENSION(jpi,jpj)  ::  zfact          ! used for vertical structure function 
     351      REAL(wp), DIMENSION(jpi,jpj)  ::  zhdep          ! Ocean depth  
     352      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zpc, zav_tide  ! power consumption 
    362353      !! 
    363354      NAMELIST/namzdf_tmx/ rn_htmx, rn_n2min, rn_tfe, rn_me, ln_tmx_itf, rn_tfe_itf 
     
    366357      IF( nn_timing == 1 )  CALL timing_start('zdf_tmx_init') 
    367358      ! 
    368       CALL wrk_alloc( jpi,jpj,       zem2, zek1, zkz, zfact, zhdep ) 
    369       CALL wrk_alloc( jpi,jpj,jpk,   zpc, zav_tide ) 
    370359      ! 
    371360      REWIND( numnam_ref )             ! Namelist namzdf_tmx in reference namelist : Tidal Mixing 
     
    534523      ENDIF 
    535524      ! 
    536       CALL wrk_dealloc( jpi,jpj, zem2, zek1, zkz, zfact, zhdep ) 
    537       CALL wrk_dealloc( jpi,jpj,jpk, zpc, zav_tide ) 
    538525      ! 
    539526      IF( nn_timing == 1 )  CALL timing_stop('zdf_tmx_init') 
     
    559546   USE iom            ! I/O Manager 
    560547   USE lib_mpp        ! MPP library 
    561    USE wrk_nemo       ! work arrays 
    562548   USE timing         ! Timing 
    563549   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    669655      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    670656      REAL(wp) ::   ztpc         ! scalar workspace 
    671       REAL(wp), DIMENSION(:,:)  , POINTER ::  zfact     ! Used for vertical structure 
    672       REAL(wp), DIMENSION(:,:)  , POINTER ::  zhdep     ! Ocean depth 
    673       REAL(wp), DIMENSION(:,:,:), POINTER ::  zwkb      ! WKB-stretched height above bottom 
    674       REAL(wp), DIMENSION(:,:,:), POINTER ::  zweight   ! Weight for high mode vertical distribution 
    675       REAL(wp), DIMENSION(:,:,:), POINTER ::  znu_t     ! Molecular kinematic viscosity (T grid) 
    676       REAL(wp), DIMENSION(:,:,:), POINTER ::  znu_w     ! Molecular kinematic viscosity (W grid) 
    677       REAL(wp), DIMENSION(:,:,:), POINTER ::  zReb      ! Turbulence intensity parameter 
     657      REAL(wp), DIMENSION(jpi,jpj)  ::  zfact     ! Used for vertical structure 
     658      REAL(wp), DIMENSION(jpi,jpj)  ::  zhdep     ! Ocean depth 
     659      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zwkb      ! WKB-stretched height above bottom 
     660      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zweight   ! Weight for high mode vertical distribution 
     661      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  znu_t     ! Molecular kinematic viscosity (T grid) 
     662      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  znu_w     ! Molecular kinematic viscosity (W grid) 
     663      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zReb      ! Turbulence intensity parameter 
    678664      !!---------------------------------------------------------------------- 
    679665      ! 
    680666      IF( nn_timing == 1 )   CALL timing_start('zdf_tmx') 
    681667      ! 
    682       CALL wrk_alloc( jpi,jpj,       zfact, zhdep ) 
    683       CALL wrk_alloc( jpi,jpj,jpk,   zwkb, zweight, znu_t, znu_w, zReb ) 
    684668 
    685669      !                          ! ----------------------------- ! 
     
    900884      CALL iom_put( "emix_tmx", emix_tmx ) 
    901885       
    902       CALL wrk_dealloc( jpi,jpj,       zfact, zhdep ) 
    903       CALL wrk_dealloc( jpi,jpj,jpk,   zwkb, zweight, znu_t, znu_w, zReb ) 
    904886 
    905887      IF(ln_ctl)   CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' tmx - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', ovlap=1, kdim=jpk) 
Note: See TracChangeset for help on using the changeset viewer.