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

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

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

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

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC
Files:
1 deleted
38 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    r9104 r9125  
    2727   USE iom            ! I/O Manager 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! work arrays 
    3029   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    3130 
Note: See TracChangeset for help on using the changeset viewer.