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 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90 – NEMO

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90

    r2715 r3294  
    2323   USE in_out_manager  ! I/O manager 
    2424   USE lib_mpp         ! MPP library 
     25   USE wrk_nemo        ! Memory Allocation 
     26   USE timing          ! Timing 
    2527 
    2628   IMPLICIT NONE 
     
    5658      !! References : Madec, et al., 1991, JPO, 21, 9, 1349-1371. 
    5759      !!---------------------------------------------------------------------- 
    58       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released, wrk_in_use_xz, wrk_not_released_xz 
    59       USE wrk_nemo, ONLY:   ztrdt => wrk_3d_1 , ztrds => wrk_3d_2 , zrhop => wrk_3d_3 
    60       USE wrk_nemo, ONLY:   zwx   => wrk_xz_1 , zwy   => wrk_xz_2 , zwz   => wrk_xz_3 
    6160      ! 
    6261      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     
    6867      INTEGER  ::   ikbot, ik, ikup, ikdown   ! ??? 
    6968      REAL(wp) ::   ze3tot, zta, zsa, zraua, ze3dwn 
     69      REAL(wp), POINTER, DIMENSION(:,:  ) :: zwx, zwy, zwz 
     70      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdt, ztrds, zrhop 
    7071      !!---------------------------------------------------------------------- 
    71  
    72       ! Strictly 1 and 2 3D workspaces only needed if(l_trdtra) but it doesn't  
    73       ! cost us anything and makes code simpler. 
    74       IF( wrk_in_use(3, 1,2,3) .OR. wrk_in_use_xz(1,2,3) ) THEN 
    75          CALL ctl_stop('tra_npc: requested workspace arrays unavailable')   ;   RETURN 
    76       ENDIF 
    77  
     72      ! 
     73      IF( nn_timing == 1 )  CALL timing_start('tra_npc') 
     74      ! 
     75      CALL wrk_alloc(jpi, jpj, jpk, zrhop ) 
     76      CALL wrk_alloc(jpi, jpk, zwx, zwy, zwz ) 
     77      ! 
    7878      IF( MOD( kt, nn_npc ) == 0 ) THEN 
    7979 
     
    8484 
    8585         IF( l_trdtra )   THEN                    !* Save ta and sa trends 
     86            CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    8687            ztrdt(:,:,:) = tsa(:,:,:,jp_tem)  
    8788            ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
     
    200201            CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_npc, ztrdt ) 
    201202            CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_npc, ztrds ) 
     203            CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 
    202204         ENDIF 
    203205       
     
    216218      ENDIF 
    217219      ! 
    218       IF( wrk_not_released(3, 1,2,3) .OR.   & 
    219           wrk_not_released_xz(1,2,3) )   CALL ctl_stop('tra_npc: failed to release workspace arrays') 
     220      CALL wrk_dealloc(jpi, jpj, jpk, zrhop ) 
     221      CALL wrk_dealloc(jpi, jpk, zwx, zwy, zwz ) 
     222      ! 
     223      IF( nn_timing == 1 )  CALL timing_stop('tra_npc') 
    220224      ! 
    221225   END SUBROUTINE tra_npc 
Note: See TracChangeset for help on using the changeset viewer.