Ignore:
Timestamp:
2011-11-20T16:02:18+01:00 (10 years ago)
Author:
cetlod
Message:

New dynamical allocation & timing in OPA_SRC/DYN routines

File:
1 edited

Legend:

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

    r3142 r3161  
    3737   USE lbclnk          ! lateral boundary condition  
    3838   USE lib_mpp         ! MPP library 
     39   USE wrk_nemo_2      ! Memory Allocation 
     40   USE timing          ! Timing 
    3941 
    4042   IMPLICIT NONE 
     
    8082      !!---------------------------------------------------------------------- 
    8183      ! 
     84      IF( nn_timing == 1 )  CALL timing_start('dyn_hpg') 
     85      ! 
    8286      IF( l_trddyn ) THEN                    ! Temporary saving of ua and va trends (l_trddyn) 
    8387         ztrdu => tsa(:,:,:,1)  
     
    104108      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ua, clinfo1=' hpg  - Ua: ', mask1=umask,   & 
    105109         &                       tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     110      ! 
     111      IF( nn_timing == 1 )  CALL timing_stop('dyn_hpg') 
    106112      ! 
    107113   END SUBROUTINE dyn_hpg 
     
    436442      !! Reference: Shchepetkin and McWilliams, J. Geophys. Res., 108(C3), 3090, 2003 
    437443      !!---------------------------------------------------------------------- 
    438       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    439444      USE oce     , ONLY:   tsa                         ! (tsa) used as 2 3D workspace 
    440       USE wrk_nemo, ONLY:   drhox => wrk_3d_1  , dzx  => wrk_3d_2 
    441       USE wrk_nemo, ONLY:   drhou => wrk_3d_3  , dzu  => wrk_3d_4 , rho_i => wrk_3d_5 
    442       USE wrk_nemo, ONLY:   drhoy => wrk_3d_6  , dzy  => wrk_3d_7 
    443       USE wrk_nemo, ONLY:   drhov => wrk_3d_8  , dzv  => wrk_3d_9 , rho_j => wrk_3d_10 
    444       USE wrk_nemo, ONLY:   drhoz => wrk_3d_11 , dzz  => wrk_3d_12  
    445       USE wrk_nemo, ONLY:   drhow => wrk_3d_13 , dzw  => wrk_3d_14 
    446       USE wrk_nemo, ONLY:   rho_k => wrk_3d_15 
    447445      !! 
    448446      INTEGER, INTENT(in) ::   kt    ! ocean time-step index 
     
    453451      REAL(wp) ::   z1_12, cffv, cffy   !    "         " 
    454452      REAL(wp), POINTER, DIMENSION(:,:,:) ::  zhpi, zhpj  
    455       !!---------------------------------------------------------------------- 
    456  
    457       IF( wrk_in_use(3, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ) THEN 
    458          CALL ctl_stop('dyn:hpg_djc: requested workspace arrays unavailable')   ;   RETURN 
    459       ENDIF 
    460       ! 
     453      REAL(wp), POINTER, DIMENSION(:,:,:) ::  dzx, dzy, dzz, dzu, dzv, dzw 
     454      REAL(wp), POINTER, DIMENSION(:,:,:) ::  drhox, drhoy, drhoz, drhou, drhov, drhow 
     455      REAL(wp), POINTER, DIMENSION(:,:,:) ::  rho_i, rho_j, rho_k 
     456      !!---------------------------------------------------------------------- 
     457      ! 
     458      CALL wrk_alloc( jpi, jpj, jpk, dzx  , dzy  , dzz  , dzu  , dzv  , dzw   )  
     459      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                      )  
    461461      zhpi => tsa(:,:,:,1)  
    462462      zhpj => tsa(:,:,:,2)  
     463      ! 
    463464 
    464465      IF( kt == nit000 ) THEN 
     
    657658      END DO 
    658659      ! 
    659       IF( wrk_not_released(3, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) )   & 
    660          CALL ctl_stop('dyn:hpg_djc: failed to release workspace arrays') 
     660      CALL wrk_dealloc( jpi, jpj, jpk, dzx  , dzy  , dzz  , dzu  , dzv  , dzw   )  
     661      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                      )  
    661663      ! 
    662664   END SUBROUTINE hpg_djc 
     
    676678      !! 
    677679      !!---------------------------------------------------------------------- 
    678  
    679       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    680680      USE oce     , ONLY:   tsa                          ! (tsa) used as 2 3D workspace 
    681       USE wrk_nemo, ONLY:   zhpi => wrk_3d_3  
    682       USE wrk_nemo, ONLY:   zu   => wrk_3d_4  
    683       USE wrk_nemo, ONLY:   zv   => wrk_3d_5 
    684       USE wrk_nemo, ONLY:   fsp  => wrk_3d_6 
    685       USE wrk_nemo, ONLY:   xsp  => wrk_3d_7 
    686       USE wrk_nemo, ONLY:   asp  => wrk_3d_8 
    687       USE wrk_nemo, ONLY:   bsp  => wrk_3d_9 
    688       USE wrk_nemo, ONLY:   csp  => wrk_3d_10 
    689       USE wrk_nemo, ONLY:   dsp  => wrk_3d_11 
    690       !! 
    691681      !!---------------------------------------------------------------------- 
    692682      !! 
     
    704694      INTEGER  :: zbhitwe, zbhitns 
    705695      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zdeptht, zrhh  
    706       !!---------------------------------------------------------------------- 
    707  
    708       IF( wrk_in_use(3, 3,4,5,6,7,8,9,10,11) ) THEN 
    709          CALL ctl_stop('dyn:hpg_prj: requested workspace arrays unavailable')   ;   RETURN 
    710       ENDIF 
    711       ! 
     696      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp 
     697      !!---------------------------------------------------------------------- 
     698      ! 
     699      CALL wrk_alloc( jpi, jpj, jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp )  
    712700      zdeptht => tsa(:,:,:,1)  
    713701      zrhh    => tsa(:,:,:,2)  
    714  
     702      ! 
    715703      IF( kt == nit000 ) THEN 
    716704         IF(lwp) WRITE(numout,*) 
     
    964952        END DO 
    965953      END DO 
    966  
    967       ! 
    968       IF( wrk_not_released(3, 3,4,5,6,7,8,9,10,11) )   & 
    969          CALL ctl_stop('dyn:hpg_prj: failed to release workspace arrays') 
     954      ! 
     955      CALL wrk_dealloc( jpi, jpj, jpk, zhpi, zu, zv, fsp, xsp, asp, bsp, csp, dsp )  
    970956      ! 
    971957   END SUBROUTINE hpg_prj 
Note: See TracChangeset for help on using the changeset viewer.