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 3231 for branches/2011/dev_NEMO_MERGE_2011/NEMOGCM – NEMO

Ignore:
Timestamp:
2011-12-21T10:11:11+01:00 (12 years ago)
Author:
smasson
Message:

dev_NEMO_MERGE_2011: supress TARGET attribute for tsa and use work arrays

Location:
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_cen2.F90

    r3186 r3231  
    4949      !! ** Action  :   (ua,va) updated with the now vorticity term trend 
    5050      !!---------------------------------------------------------------------- 
    51       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    52       ! 
    5351      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    5452      ! 
     
    6159      IF( nn_timing == 1 )  CALL timing_start('dyn_adv_cen2') 
    6260      ! 
    63       CALL wrk_alloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw ) 
    64       zfu => tsa(:,:,:,1)  
    65       zfv => tsa(:,:,:,2)  
     61      CALL wrk_alloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    6662      ! 
    6763      IF( kt == nit000 .AND. lwp ) THEN 
     
    163159         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    164160      ! 
    165       CALL wrk_dealloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfw ) 
     161      CALL wrk_dealloc( jpi, jpj, jpk, zfu_t, zfv_t, zfu_f, zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
    166162      ! 
    167163      IF( nn_timing == 1 )  CALL timing_stop('dyn_adv_cen2') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynadv_ubs.F90

    r3186 r3231  
    7070      !! Reference : Shchepetkin & McWilliams, 2005, Ocean Modelling.  
    7171      !!---------------------------------------------------------------------- 
    72       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    73       ! 
    7472      INTEGER, INTENT(in) ::   kt     ! ocean time-step index 
    7573      ! 
     
    8482      IF( nn_timing == 1 )  CALL timing_start('dyn_adv_ubs') 
    8583      ! 
    86       CALL wrk_alloc( jpi, jpj, jpk,       zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfw ) 
    87       CALL wrk_alloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu                     ) 
    88       zfu => tsa(:,:,:,1)  
    89       zfv => tsa(:,:,:,2)  
     84      CALL wrk_alloc( jpi, jpj, jpk,       zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
     85      CALL wrk_alloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
    9086      ! 
    9187      IF( kt == nit000 ) THEN 
     
    255251         &                       tab3d_2=va, clinfo2=           ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    256252      ! 
    257       CALL wrk_dealloc( jpi, jpj, jpk,       zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfw ) 
    258       CALL wrk_dealloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu                     ) 
     253      CALL wrk_dealloc( jpi, jpj, jpk,       zfu_t , zfv_t , zfu_f , zfv_f, zfu_uw, zfv_vw, zfu, zfv, zfw ) 
     254      CALL wrk_dealloc( jpi, jpj, jpk, jpts, zlu_uu, zlv_vv, zlu_uv, zlv_vu                               ) 
    259255      ! 
    260256      IF( nn_timing == 1 )  CALL timing_stop('dyn_adv_ubs') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynbfr.F90

    r3161 r3231  
    1919   USE prtctl          ! Print control 
    2020   USE timing          ! Timing 
     21   USE wrk_nemo        ! Memory Allocation 
    2122 
    2223   IMPLICIT NONE 
     
    4445      !! ** Action  :   (ua,va)   momentum trend increased by bottom friction trend 
    4546      !!--------------------------------------------------------------------- 
    46       USE oce, ONLY:   ztrduv => tsa   ! tsa used as 4D workspace 
    47       !! 
    4847      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    4948      !!  
     
    5150      INTEGER  ::   ikbu, ikbv   ! local integers 
    5251      REAL(wp) ::   zm1_2dt      ! local scalar 
     52      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
    5353      !!--------------------------------------------------------------------- 
    5454      ! 
     
    6262 
    6363        IF( l_trddyn )   THEN                      ! temporary save of ua and va trends 
    64            ztrduv(:,:,:,1) = ua(:,:,:) 
    65            ztrduv(:,:,:,2) = va(:,:,:) 
     64           CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
     65           ztrdu(:,:,:) = ua(:,:,:) 
     66           ztrdv(:,:,:) = va(:,:,:) 
    6667        ENDIF 
    6768 
     
    8586        ! 
    8687        IF( l_trddyn )   THEN                      ! save the vertical diffusive trends for further diagnostics 
    87            ztrduv(:,:,:,1) = ua(:,:,:) - ztrduv(:,:,:,1) 
    88            ztrduv(:,:,:,2) = va(:,:,:) - ztrduv(:,:,:,2) 
    89            CALL trd_mod( ztrduv(:,:,:,1), ztrduv(:,:,:,2), jpdyn_trd_bfr, 'DYN', kt ) 
     88           ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
     89           ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
     90           CALL trd_mod( ztrdu(:,:,:), ztrdv(:,:,:), jpdyn_trd_bfr, 'DYN', kt ) 
     91           CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    9092        ENDIF 
    9193        !                                          ! print mean trends (used for debugging) 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r3223 r3231  
    7676      !!             - Save the trend (l_trddyn=T) 
    7777      !!---------------------------------------------------------------------- 
    78       USE oce, ONLY:   tsa                         ! (tsa) used as 2 3D workspace 
    79       !! 
    8078      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    8179      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     
    8583      ! 
    8684      IF( l_trddyn ) THEN                    ! Temporary saving of ua and va trends (l_trddyn) 
    87          ztrdu => tsa(:,:,:,1)  
    88          ztrdv => tsa(:,:,:,2)  
    89          ! 
     85         CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    9086         ztrdu(:,:,:) = ua(:,:,:)   
    9187         ztrdv(:,:,:) = va(:,:,:)  
     
    104100         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    105101         CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_hpg, 'DYN', kt ) 
     102         CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    106103      ENDIF           
    107104      ! 
     
    191188      !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 
    192189      !!---------------------------------------------------------------------- 
    193       USE oce, ONLY:   tsa                         ! (tsa) used as 2 3D workspace 
    194       !! 
    195190      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
    196191      !! 
     
    199194      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj  
    200195      !!---------------------------------------------------------------------- 
    201        
    202       zhpi => tsa(:,:,:,1)  
    203       zhpj => tsa(:,:,:,2)  
     196      !   
     197      CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 
    204198      ! 
    205199      IF( kt == nit000 ) THEN 
     
    245239      END DO 
    246240      ! 
     241      CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 
     242      ! 
    247243   END SUBROUTINE hpg_zco 
    248244 
     
    256252      !! ** Action  : - Update (ua,va) with the now hydrastatic pressure trend 
    257253      !!----------------------------------------------------------------------  
    258       USE oce, ONLY:   tsa                         ! (tsa) used as 2 3D workspace 
    259       !! 
    260254      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
    261255      !! 
     
    265259      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj  
    266260      !!---------------------------------------------------------------------- 
    267         
    268       zhpi => tsa(:,:,:,1)  
    269       zhpj => tsa(:,:,:,2)  
     261      ! 
     262      CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 
    270263      ! 
    271264      IF( kt == nit000 ) THEN 
     
    343336      END DO 
    344337      ! 
    345  
     338      CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 
     339      ! 
    346340   END SUBROUTINE hpg_zps 
    347341 
     
    365359      !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 
    366360      !!---------------------------------------------------------------------- 
    367       USE oce, ONLY:   tsa                         ! (tsa) used as 2 3D workspace 
    368       !! 
    369361      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
    370362      !! 
     
    373365      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj  
    374366      !!---------------------------------------------------------------------- 
    375  
    376       zhpi => tsa(:,:,:,1)  
    377       zhpj => tsa(:,:,:,2)  
     367      ! 
     368      CALL wrk_alloc( jpi,jpj,jpk, zhpi, zhpj ) 
    378369      ! 
    379370      IF( kt == nit000 ) THEN 
     
    432423      END DO 
    433424      ! 
     425      CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) 
     426      ! 
    434427   END SUBROUTINE hpg_sco 
    435428 
     
    442435      !! Reference: Shchepetkin and McWilliams, J. Geophys. Res., 108(C3), 3090, 2003 
    443436      !!---------------------------------------------------------------------- 
    444       USE oce     , ONLY:   tsa                         ! (tsa) used as 2 3D workspace 
    445       !! 
    446437      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
    447438      !! 
     
    458449      CALL wrk_alloc( jpi, jpj, jpk, dzx  , dzy  , dzz  , dzu  , dzv  , dzw   )  
    459450      CALL wrk_alloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow )  
    460       CALL wrk_alloc( jpi, jpj, jpk, rho_i, rho_j, rho_k                      )  
    461       zhpi => tsa(:,:,:,1)  
    462       zhpj => tsa(:,:,:,2)  
     451      CALL wrk_alloc( jpi, jpj, jpk, rho_i, rho_j, rho_k,  zhpi,  zhpj        )  
    463452      ! 
    464453 
     
    660649      CALL wrk_dealloc( jpi, jpj, jpk, dzx  , dzy  , dzz  , dzu  , dzv  , dzw   )  
    661650      CALL wrk_dealloc( jpi, jpj, jpk, drhox, drhoy, drhoz, drhou, drhov, drhow )  
    662       CALL wrk_dealloc( jpi, jpj, jpk, rho_i, rho_j, rho_k                      )  
     651      CALL wrk_dealloc( jpi, jpj, jpk, rho_i, rho_j, rho_k,  zhpi,  zhpj        )  
    663652      ! 
    664653   END SUBROUTINE hpg_djc 
     
    678667      !! 
    679668      !!---------------------------------------------------------------------- 
    680       USE oce     , ONLY:   tsa                          ! (tsa) used as 2 3D workspace 
    681       !!---------------------------------------------------------------------- 
    682       !! 
    683669      INTEGER, PARAMETER  :: polynomial_type = 1    ! 1: cubic spline, 2: linear 
    684670      INTEGER, INTENT(in) ::   kt                   ! ocean time-step index 
     
    697683      !!---------------------------------------------------------------------- 
    698684      ! 
    699       CALL wrk_alloc( jpi, jpj, jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp )  
    700       zdeptht => tsa(:,:,:,1)  
    701       zrhh    => tsa(:,:,:,2)  
     685      CALL wrk_alloc( jpi,jpj,jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp )  
     686      CALL wrk_alloc( jpi,jpj,jpk, zdeptht, zrhh )  
    702687      ! 
    703688      IF( kt == nit000 ) THEN 
     
    955940      END DO 
    956941      ! 
    957       CALL wrk_dealloc( jpi, jpj, jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp )  
     942      CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp )  
     943      CALL wrk_dealloc( jpi,jpj,jpk, zdeptht, zrhh )  
    958944      ! 
    959945   END SUBROUTINE hpg_prj 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90

    r3186 r3231  
    5454      !!             - save this trends (l_trddyn=T) for post-processing 
    5555      !!---------------------------------------------------------------------- 
    56       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    57       !! 
    5856      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    5957      !! 
     
    7573 
    7674      IF( l_trddyn ) THEN           ! Save ua and va trends 
    77          ztrdu => tsa(:,:,:,1)  
    78          ztrdv => tsa(:,:,:,2)  
    79          ! 
     75         CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    8076         ztrdu(:,:,:) = ua(:,:,:)  
    8177         ztrdv(:,:,:) = va(:,:,:)  
     
    136132         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    137133         CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_keg, 'DYN', kt ) 
     134         CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    138135      ENDIF 
    139136      ! 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90

    r3186 r3231  
    8787      !!              - save the trend in (zwk3,zwk4) ('key_trddyn') 
    8888      !!---------------------------------------------------------------------- 
    89       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    90       ! 
    9189      INTEGER, INTENT( in ) ::   kt           ! ocean time-step index 
    9290      ! 
    9391      INTEGER ::   ji, jj, jk                 ! dummy loop indices 
    94       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwk1, zwk2 
    95       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwk3, zwk4 
     92      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwk1, zwk2, zwk3, zwk4 
    9693      !!---------------------------------------------------------------------- 
    9794      ! 
    9895      IF( nn_timing == 1 )  CALL timing_start('dyn_ldf_bilapg') 
    9996      ! 
    100       CALL wrk_alloc( jpi, jpj, jpk, zwk1, zwk2 )  
    101       zwk3 => tsa(:,:,:,1)  
    102       zwk4 => tsa(:,:,:,2)  
     97      CALL wrk_alloc( jpi, jpj, jpk, zwk1, zwk2, zwk3, zwk4 )  
    10398      ! 
    10499      IF( kt == nit000 ) THEN 
     
    135130      END DO 
    136131      ! 
    137       CALL wrk_dealloc( jpi, jpj, jpk, zwk1, zwk2 )  
     132      CALL wrk_dealloc( jpi, jpj, jpk, zwk1, zwk2, zwk3, zwk4 )  
    138133      ! 
    139134      IF( nn_timing == 1 )  CALL timing_stop('dyn_ldf_bilapg') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90

    r3161 r3231  
    4040   USE lbclnk          ! lateral boundary condition (or mpp link) 
    4141   USE lib_mpp         ! MPP library 
     42   USE wrk_nemo        ! Memory Allocation 
    4243   USE prtctl          ! Print control 
    4344#if defined key_agrif 
     
    9394      !!               un,vn   now horizontal velocity of next time-step 
    9495      !!---------------------------------------------------------------------- 
    95       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    96       ! 
    9796      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    9897      ! 
     
    109108      IF( nn_timing == 1 )  CALL timing_start('dyn_nxt') 
    110109      ! 
    111       ze3u_f => tsa(:,:,:,1)  
    112       ze3v_f => tsa(:,:,:,2)  
     110      CALL wrk_alloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 
    113111      ! 
    114112      IF( kt == nit000 ) THEN 
     
    281279         &                       tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask ) 
    282280      !  
     281      CALL wrk_dealloc( jpi,jpj,jpk, ze3u_f, ze3v_f ) 
     282      ! 
    283283      IF( nn_timing == 1 )  CALL timing_stop('dyn_nxt') 
    284284      ! 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r3161 r3231  
    4141   USE in_out_manager  ! I/O manager 
    4242   USE lib_mpp         ! distributed memory computing library 
     43   USE wrk_nemo        ! Memory Allocation 
    4344   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    4445   USE prtctl          ! Print control 
     
    104105      !! References : Roullet and Madec 1999, JGR. 
    105106      !!--------------------------------------------------------------------- 
    106       USE oce, ONLY:   tsa                 ! tsa used as 2 3D workspace 
    107       !! 
    108107      INTEGER, INTENT(in   ) ::   kt       ! ocean time-step index 
    109108      INTEGER, INTENT(  out) ::   kindic   ! solver convergence flag (<0 if not converge) 
     
    116115      IF( nn_timing == 1 )  CALL timing_start('dyn_spg_flt') 
    117116      ! 
    118       zub => tsa(:,:,:,1)  
    119       zvb => tsa(:,:,:,2)  
     117      CALL wrk_alloc( jpi,jpj,jpk, zub, zvb ) 
    120118      ! 
    121119      IF( kt == nit000 ) THEN 
     
    353351      IF( lrst_oce ) CALL flt_rst( kt, 'WRITE' ) 
    354352      ! 
     353      CALL wrk_dealloc( jpi,jpj,jpk, zub, zvb ) 
     354      ! 
    355355      IF( nn_timing == 1 )  CALL timing_stop('dyn_spg_flt') 
    356356      ! 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r3186 r3231  
    7575      !!               and planetary vorticity trends) ('key_trddyn') 
    7676      !!---------------------------------------------------------------------- 
    77       USE oce, ONLY:   tsa            ! tsa used as 2 3D workspace 
    78       !! 
    7977      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    8078      ! 
     
    8482      IF( nn_timing == 1 )  CALL timing_start('dyn_vor') 
    8583      ! 
    86       IF( l_trddyn )   THEN 
    87          ztrdu => tsa(:,:,:,1)  
    88          ztrdv => tsa(:,:,:,2)  
    89       END IF 
     84      IF( l_trddyn )   CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    9085      ! 
    9186      !                                          ! vorticity term  
     
    187182      IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' vor  - Ua: ', mask1=umask,               & 
    188183         &                     tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     184      ! 
     185      IF( l_trddyn )   CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    189186      ! 
    190187      IF( nn_timing == 1 )  CALL timing_stop('dyn_vor') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90

    r3186 r3231  
    5555      !!              - Save the trends in (ztrdu,ztrdv) ('key_trddyn') 
    5656      !!---------------------------------------------------------------------- 
    57       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    58       !! 
    5957      INTEGER, INTENT(in) ::   kt   ! ocean time-step inedx 
    6058      ! 
     
    6866      IF( nn_timing == 1 )  CALL timing_start('dyn_zad') 
    6967      ! 
    70       CALL wrk_alloc( jpi, jpj, zww )  
    71       ! 
    72       zwuw  => tsa(:,:,:,1)  
    73       zwvw  => tsa(:,:,:,2)  
     68      CALL wrk_alloc( jpi,jpj, zww )  
     69      CALL wrk_alloc( jpi,jpj,jpk, zwuw , zwvw )  
    7470      ! 
    7571      IF( kt == nit000 ) THEN 
     
    129125         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    130126      ! 
    131       CALL wrk_dealloc( jpi, jpj, zww )  
     127      CALL wrk_dealloc( jpi,jpj, zww )  
     128      CALL wrk_dealloc( jpi,jpj,jpk, zwuw , zwvw )  
    132129      ! 
    133130      IF( nn_timing == 1 )  CALL timing_stop('dyn_zad') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_exp.F90

    r3186 r3231  
    5757      !! ** Action : - Update (ua,va) with the vertical diffusive trend 
    5858      !!--------------------------------------------------------------------- 
    59       USE oce     , ONLY:   tsa             ! tsa used as 2 3D workspace 
    60       ! 
    6159      INTEGER , INTENT(in) ::   kt     ! ocean time-step index 
    6260      REAL(wp), INTENT(in) ::   p2dt   ! time-step  
     
    6462      INTEGER  ::   ji, jj, jk, jl   ! dummy loop indices 
    6563      REAL(wp) ::   zrau0r, zlavmr, zua, zva   ! local scalars 
    66       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwx, zwy 
    67       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwz, zww 
     64      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwx, zwy, zwz, zww 
    6865      !!---------------------------------------------------------------------- 
    6966      ! 
    7067      IF( nn_timing == 1 )  CALL timing_start('dyn_zdf_exp') 
    7168      ! 
    72       CALL wrk_alloc( jpi, jpj, jpk, zwz, zww )  
    73       ! 
    74       zwx => tsa(:,:,:,1)  
    75       zwy => tsa(:,:,:,2)  
     69      CALL wrk_alloc( jpi,jpj,jpk, zwx, zwy, zwz, zww )  
    7670      ! 
    7771      IF( kt == nit000 .AND. lwp ) THEN 
     
    126120      END DO                           ! End of time splitting 
    127121      ! 
    128       CALL wrk_dealloc( jpi, jpj, jpk, zwz, zww )  
     122      CALL wrk_dealloc( jpi,jpj,jpk, zwx, zwy, zwz, zww )  
    129123      ! 
    130124      IF( nn_timing == 1 )  CALL timing_stop('dyn_zdf_exp') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r3186 r3231  
    5757      !! ** Action : - Update (ua,va) arrays with the after vertical diffusive mixing trend. 
    5858      !!--------------------------------------------------------------------- 
    59       USE oce     , ONLY:   tsa       ! tsa used as 2 3D workspace 
    60       !! 
    6159      INTEGER , INTENT(in) ::  kt     ! ocean time-step index 
    6260      REAL(wp), INTENT(in) ::  p2dt   ! vertical profile of tracer time-step 
     
    6967      REAL(wp) ::   zbfru, zbfrv  
    7068      REAL(wp) ::   zbfr_imp = 0._wp                        ! toggle (SAVE'd by assignment)  
    71       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwi 
    72       REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwd, zws 
     69      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwi, zwd, zws 
    7370      !!---------------------------------------------------------------------- 
    7471      ! 
    7572      IF( nn_timing == 1 )  CALL timing_start('dyn_zdf_imp') 
    7673      ! 
    77       CALL wrk_alloc( jpi, jpj, jpk, zwi )  
    78       ! 
    79       zwd => tsa(:,:,:,1)  
    80       zws => tsa(:,:,:,2)  
     74      CALL wrk_alloc( jpi,jpj,jpk, zwi, zwd, zws )  
    8175      ! 
    8276      IF( kt == nit000 ) THEN 
     
    251245      END DO 
    252246      ! 
    253       CALL wrk_dealloc( jpi, jpj, jpk, zwi )  
     247      CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwd, zws )  
    254248      ! 
    255249      IF( nn_timing == 1 )  CALL timing_stop('dyn_zdf_imp') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90

    r3186 r3231  
    7777      !! Reference  : Leclair, M., and G. Madec, 2009, Ocean Modelling. 
    7878      !!---------------------------------------------------------------------- 
    79       USE oce     , ONLY: tsa             ! tsa used as 2 3D workspace 
    80       !! 
    8179      INTEGER, INTENT(in) ::   kt   ! time step 
    8280      ! 
     
    232230      IF( lk_diaar5 ) THEN                            ! vertical mass transport & its square value 
    233231         ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 
    234          z3d => tsa(:,:,:,1) 
     232         CALL wrk_alloc( jpi,jpj,jpk, z3d ) 
    235233         z2d(:,:) = rau0 * e1t(:,:) * e2t(:,:) 
    236234         DO jk = 1, jpk 
     
    239237         CALL iom_put( "w_masstr" , z3d                     )   
    240238         CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) 
     239         CALL wrk_dealloc( jpi,jpj,jpk, z3d ) 
    241240      ENDIF 
    242241      ! 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90

    r3229 r3231  
    9696      !!               of now neutral surfaces at u-, w- and v- w-points, resp. 
    9797      !!---------------------------------------------------------------------- 
    98       USE oce     , ONLY:   zwz => ua       , zww => va   ! (ua,va) used as workspace 
    99       USE oce     , ONLY:   tsa                           ! (tsa) used as workspace 
    100       !! 
    10198      INTEGER , INTENT(in)                   ::   kt    ! ocean time-step index 
    10299      REAL(wp), INTENT(in), DIMENSION(:,:,:) ::   prd   ! in situ density 
     
    110107      REAL(wp) ::   zcj, zfj, zav, zbv, zaj, zbj   !   -      - 
    111108      REAL(wp) ::   zck, zfk,      zbw             !   -      - 
     109      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zwz, zww 
    112110      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zdzr 
    113111      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zgru, zgrv 
     
    116114      IF( nn_timing == 1 )  CALL timing_start('ldf_slp') 
    117115      ! 
    118       CALL wrk_alloc( jpi,jpj,jpk, zdzr ) 
    119       ! 
    120       zgru => tsa(:,:,:,1) 
    121       zgrv => tsa(:,:,:,2) 
     116      CALL wrk_alloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 
    122117 
    123118      zeps   =  1.e-20_wp        !==   Local constant initialization   ==! 
     
    366361      ENDIF 
    367362      ! 
    368       CALL wrk_dealloc( jpi,jpj,jpk, zdzr ) 
     363      CALL wrk_dealloc( jpi,jpj,jpk, zwz, zww, zdzr, zgru, zgrv ) 
    369364      ! 
    370365      IF( nn_timing == 1 )  CALL timing_stop('ldf_slp') 
     
    387382      !!             - wslp2              squared slope of neutral surfaces at w-points. 
    388383      !!---------------------------------------------------------------------- 
    389       USE oce     , ONLY:   zalbet  => ua       ! use ua as workspace 
    390       !! 
    391384      INTEGER, INTENT( in ) ::   kt             ! ocean time-step index 
    392385      !! 
     
    401394      REAL(wp) ::   zbeta0 
    402395      REAL(wp), POINTER, DIMENSION(:,:)     ::   z1_mlbw 
     396      REAL(wp), POINTER, DIMENSION(:,:,:)   ::   zalbet 
    403397      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zdxrho , zdyrho, zdzrho     ! Horizontal and vertical density gradients 
    404398      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zti_mlb, ztj_mlb            ! for Griffies operator only 
     
    408402      ! 
    409403      CALL wrk_alloc( jpi,jpj, z1_mlbw ) 
     404      CALL wrk_alloc( jpi,jpj,jpk, zalbet ) 
    410405      CALL wrk_alloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho,              klstart = 0  ) 
    411406      CALL wrk_alloc( jpi,jpj,  2,2, zti_mlb, ztj_mlb,        kkstart = 0, klstart = 0  ) 
     
    602597      ! 
    603598      CALL wrk_dealloc( jpi,jpj, z1_mlbw ) 
     599      CALL wrk_dealloc( jpi,jpj,jpk, zalbet ) 
    604600      CALL wrk_dealloc( jpi,jpj,jpk,2, zdxrho , zdyrho, zdzrho,              klstart = 0  ) 
    605601      CALL wrk_dealloc( jpi,jpj,  2,2, zti_mlb, ztj_mlb,        kkstart = 0, klstart = 0  ) 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90

    r3229 r3231  
    133133      !!              coefficients using the GLS turbulent closure scheme. 
    134134      !!---------------------------------------------------------------------- 
    135       USE oce     , ONLY: tsa                 ! use tsa as workspace 
    136       USE oce     , ONLY: z_elem_a  =>   ua   ! use ua as workspace 
    137       USE oce     , ONLY: z_elem_b  =>   va   ! use va as workspace 
    138       ! 
    139135      INTEGER, INTENT(in) ::   kt ! ocean time step 
    140136      INTEGER  ::   ji, jj, jk, ibot, ibotm1, dir  ! dummy loop arguments 
     
    152148      REAL(wp), POINTER, DIMENSION(:,:,:) ::   eps         ! dissipation rate 
    153149      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwall_psi   ! Wall function use in the wb case (ln_sigpsi.AND.ln_crban=T) 
    154       REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_elem_c, psi 
     150      REAL(wp), POINTER, DIMENSION(:,:,:) ::   z_elem_a, z_elem_b, z_elem_c, psi 
    155151      !!-------------------------------------------------------------------- 
    156152      ! 
     
    158154      ! 
    159155      CALL wrk_alloc( jpi,jpj, zdep, zflxs, zhsro ) 
    160       CALL wrk_alloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi ) 
    161       ! 
    162       z_elem_c  => tsa(:,:,:,1) 
    163       psi       => tsa(:,:,:,2) 
     156      CALL wrk_alloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi, z_elem_a, z_elem_b, z_elem_c, psi ) 
    164157 
    165158      ! Preliminary computing 
     
    890883      ! 
    891884      CALL wrk_dealloc( jpi,jpj, zdep, zflxs, zhsro ) 
    892       CALL wrk_dealloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi ) 
     885      CALL wrk_dealloc( jpi,jpj,jpk, eb, mxlb, shear, eps, zwall_psi, z_elem_a, z_elem_b, z_elem_c, psi ) 
    893886      ! 
    894887      IF( nn_timing == 1 )  CALL timing_stop('zdf_gls') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90

    r3229 r3231  
    192192      !!                (= Kz dz[Ub] * dz[Un] ) 
    193193      !! --------------------------------------------------------------------- 
    194       USE oce     , ONLY:   zdiag => ua          ! (ua,va) used  as workspace 
    195       USE oce     , ONLY:   tsa                  ! (tsa) used  as workspace 
    196       !! 
    197194      INTEGER  ::   ji, jj, jk                      ! dummy loop arguments 
    198195!!bfr      INTEGER  ::   ikbu, ikbv, ikbum1, ikbvm1      ! temporary scalar 
     
    207204      REAL(wp) ::   zzd_up, zzd_lw                  !    -         - 
    208205!!bfr      REAL(wp) ::   zebot                           !    -         - 
    209       REAL(wp), POINTER, DIMENSION(:,:,:) :: zd_up, zd_lw 
    210206      INTEGER , POINTER, DIMENSION(:,:  ) :: imlc 
    211207      REAL(wp), POINTER, DIMENSION(:,:  ) :: zhlc 
    212       REAL(wp), POINTER, DIMENSION(:,:,:) :: zpelc 
     208      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpelc, zdiag, zd_up, zd_lw 
    213209      !!-------------------------------------------------------------------- 
    214210      ! 
     
    217213      CALL wrk_alloc( jpi,jpj, imlc )    ! integer 
    218214      CALL wrk_alloc( jpi,jpj, zhlc )  
    219       CALL wrk_alloc( jpi,jpj,jpk, zpelc )  
    220       ! 
    221       zd_up => tsa(:,:,:,1)  
    222       zd_lw => tsa(:,:,:,2)  
    223  
     215      CALL wrk_alloc( jpi,jpj,jpk, zpelc, zdiag, zd_up, zd_lw )  
     216      ! 
    224217      zbbrau = rn_ebb / rau0       ! Local constant initialisation 
    225218      zfact1 = -.5_wp * rdt  
     
    437430      CALL wrk_dealloc( jpi,jpj, imlc )    ! integer 
    438431      CALL wrk_dealloc( jpi,jpj, zhlc )  
    439       CALL wrk_dealloc( jpi,jpj,jpk, zpelc )  
     432      CALL wrk_dealloc( jpi,jpj,jpk, zpelc, zdiag, zd_up, zd_lw )  
    440433      ! 
    441434      IF( nn_timing == 1 )  CALL timing_stop('tke_tke') 
     
    479472      !!              - avmu, avmv : now vertical eddy viscosity at uw- and vw-points 
    480473      !!---------------------------------------------------------------------- 
    481       USE oce, ONLY:  zmpdl => ua    ! ua used as workspace 
    482       USE oce, ONLY:  tsa            ! use tsa as workspace 
    483       !! 
    484474      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    485475      REAL(wp) ::   zrn2, zraug, zcoef, zav     ! local scalars 
    486476      REAL(wp) ::   zdku, zpdlr, zri, zsqen     !   -      - 
    487477      REAL(wp) ::   zdkv, zemxl, zemlm, zemlp   !   -      - 
    488       REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxlm, zmxld 
     478      REAL(wp), POINTER, DIMENSION(:,:,:) :: zmpdl, zmxlm, zmxld 
    489479      !!-------------------------------------------------------------------- 
    490480      ! 
    491481      IF( nn_timing == 1 )  CALL timing_start('tke_avn') 
    492       ! 
    493       zmxlm => tsa(:,:,:,1)  
    494       zmxld => tsa(:,:,:,2)  
     482 
     483      CALL wrk_alloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld )  
    495484 
    496485      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    664653            &          tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk ) 
    665654      ENDIF 
     655      ! 
     656      CALL wrk_dealloc( jpi,jpj,jpk, zmpdl, zmxlm, zmxld )  
    666657      ! 
    667658      IF( nn_timing == 1 )  CALL timing_stop('tke_avn') 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/oce.F90

    r3116 r3231  
    2828   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   rn2b ,  rn2            !: brunt-vaisala frequency**2   [s-2] 
    2929   ! 
    30    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:), TARGET ::  tsa             !: 4D T-S trends fields & work array  
     30   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::  tsa             !: 4D T-S trends fields & work array  
    3131   ! 
    3232   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   rhd    !: in situ density anomalie rhd=(rho-rau0)/rau0  [no units] 
Note: See TracChangeset for help on using the changeset viewer.